Merge "Set ThrottledError's response code to 429"
authorParent5446 <tylerromeo@gmail.com>
Fri, 28 Mar 2014 21:33:30 +0000 (21:33 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 28 Mar 2014 21:33:30 +0000 (21:33 +0000)
318 files changed:
RELEASE-NOTES-1.23
api.php
api.php5
img_auth.php
img_auth.php5
includes/AjaxResponse.php
includes/Article.php
includes/AutoLoader.php
includes/Autopromote.php
includes/Block.php
includes/CacheHelper.php
includes/Category.php
includes/CategoryViewer.php
includes/ChangeTags.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Export.php
includes/GlobalFunctions.php
includes/Linker.php
includes/OutputPage.php
includes/Title.php
includes/WebResponse.php
includes/WebStart.php
includes/Wiki.php
includes/WikiPage.php
includes/api/ApiQuerySearch.php
includes/filerepo/file/File.php
includes/objectcache/BagOStuff.php
includes/rcfeed/XMLRCFeedFormatter.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/search/SearchEngine.php
includes/search/SearchMssql.php
includes/search/SearchMySQL.php
includes/search/SearchOracle.php
includes/search/SearchPostgres.php
includes/search/SearchSqlite.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/RedirectSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialCategories.php
includes/specials/SpecialChangePassword.php
includes/specials/SpecialContributions.php
includes/specials/SpecialLinkSearch.php
includes/specials/SpecialListDuplicatedFiles.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialSearch.php
includes/specials/SpecialSpecialpages.php
includes/specials/SpecialStatistics.php
includes/specials/SpecialUncategorizedimages.php
includes/specials/SpecialUncategorizedpages.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUnusedcategories.php
includes/specials/SpecialUnusedtemplates.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUploadStash.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserlogout.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWantedtemplates.php
includes/specials/SpecialWatchlist.php
includes/specials/SpecialWhatlinkshere.php
includes/specials/SpecialWithoutinterwiki.php
includes/title/MalformedTitleException.php [new file with mode: 0644]
includes/title/MediaWikiPageLinkRenderer.php [new file with mode: 0644]
includes/title/MediaWikiTitleCodec.php [new file with mode: 0644]
includes/title/PageLinkRenderer.php [new file with mode: 0644]
includes/title/TitleFormatter.php [new file with mode: 0644]
includes/title/TitleParser.php [new file with mode: 0644]
includes/title/TitleValue.php [new file with mode: 0644]
index.php
index.php5
languages/Names.php
languages/messages/MessagesAeb.php
languages/messages/MessagesAf.php
languages/messages/MessagesAln.php
languages/messages/MessagesAm.php
languages/messages/MessagesAn.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesArq.php [new file with mode: 0644]
languages/messages/MessagesAry.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAvk.php
languages/messages/MessagesAz.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBcc.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBn.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesCe.php
languages/messages/MessagesCeb.php
languages/messages/MessagesCh.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCo.php
languages/messages/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesDtp.php
languages/messages/MessagesEgl.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesEu.php
languages/messages/MessagesExt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFo.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesFrr.php
languages/messages/MessagesFy.php
languages/messages/MessagesGa.php
languages/messages/MessagesGan_hans.php
languages/messages/MessagesGan_hant.php
languages/messages/MessagesGd.php
languages/messages/MessagesGl.php
languages/messages/MessagesGrc.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesHak.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHil.php
languages/messages/MessagesHr.php
languages/messages/MessagesHrx.php [new file with mode: 0644]
languages/messages/MessagesHsb.php
languages/messages/MessagesHt.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKaa.php
languages/messages/MessagesKab.php
languages/messages/MessagesKbd_cyrl.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk_arab.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKk_latn.php
languages/messages/MessagesKm.php
languages/messages/MessagesKn.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKsh.php
languages/messages/MessagesLa.php
languages/messages/MessagesLb.php
languages/messages/MessagesLi.php
languages/messages/MessagesLrc.php
languages/messages/MessagesLt.php
languages/messages/MessagesLv.php
languages/messages/MessagesLzh.php
languages/messages/MessagesMai.php
languages/messages/MessagesMap_bms.php
languages/messages/MessagesMdf.php
languages/messages/MessagesMg.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesMyv.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNah.php
languages/messages/MessagesNan.php
languages/messages/MessagesNap.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNe.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesOs.php
languages/messages/MessagesPa.php
languages/messages/MessagesPam.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPnb.php
languages/messages/MessagesPrg.php
languages/messages/MessagesPs.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesRm.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSa.php
languages/messages/MessagesSah.php
languages/messages/MessagesScn.php
languages/messages/MessagesSco.php
languages/messages/MessagesSdc.php
languages/messages/MessagesSe.php
languages/messages/MessagesSei.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesSi.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSli.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesStq.php
languages/messages/MessagesSu.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTe.php
languages/messages/MessagesTet.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTg_latn.php
languages/messages/MessagesTh.php
languages/messages/MessagesTk.php
languages/messages/MessagesTl.php
languages/messages/MessagesTr.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUk.php
languages/messages/MessagesUr.php
languages/messages/MessagesVec.php
languages/messages/MessagesVep.php
languages/messages/MessagesVi.php
languages/messages/MessagesVo.php
languages/messages/MessagesVro.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
languages/messages/MessagesWo.php
languages/messages/MessagesWuu.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesYue.php
languages/messages/MessagesZea.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
load.php5
maintenance/findHooks.php
maintenance/generateJsonI18n.php
maintenance/jsduck/config.json
maintenance/language/messages.inc
maintenance/mwjsduck-gen
mw-config/index.php
mw-config/index.php5
opensearch_desc.php5
profileinfo.php5 [new file with mode: 0644]
resources/Makefile
resources/Resources.php
resources/jquery/jquery.arrowSteps.js
resources/jquery/jquery.autoEllipsis.js
resources/jquery/jquery.badge.js
resources/jquery/jquery.byteLimit.js
resources/jquery/jquery.localize.js
resources/mediawiki.api/mediawiki.api.category.js
resources/mediawiki.api/mediawiki.api.parse.js
resources/mediawiki.api/mediawiki.api.watch.js
resources/mediawiki.language/mediawiki.language.numbers.js
resources/mediawiki.ui/default.less
resources/mediawiki.ui/vector.less
resources/mediawiki/mediawiki.Title.js
resources/mediawiki/mediawiki.Uri.js
resources/mediawiki/mediawiki.htmlform.js
resources/mediawiki/mediawiki.js
resources/mediawiki/mediawiki.util.js
resources/oojs-ui/i18n/es.json
resources/oojs-ui/i18n/et.json
resources/oojs-ui/i18n/hi.json
resources/oojs-ui/i18n/kk-cyrl.json
resources/oojs-ui/i18n/qu.json
resources/oojs-ui/oojs-ui-agora.css [new file with mode: 0644]
resources/oojs-ui/oojs-ui-apex.css
resources/oojs-ui/oojs-ui.js
resources/oojs-ui/oojs-ui.svg.css
resources/oojs-ui/update-oojs-ui.sh
skins/common/commonContent.css
skins/monobook/main.css
skins/vector/components/common.less
skins/vector/variables.less
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/phpunit/includes/TitleTest.php
tests/phpunit/includes/media/DjVuTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/qunit/suites/resources/jquery/jquery.color.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
thumb.php
thumb.php5
thumb_handler.php
thumb_handler.php5
wiki.phtml

index 340aa50..cea7f69 100644 (file)
@@ -50,6 +50,8 @@ production.
   prepended to the start of this array.
 * $wgQueryPages has been removed. Query Pages should be added to by using the
   wgQueryPages hook.
+* $wgHttpOnlyBlacklist has been removed.
+* $wgLicenseTerms has been removed as it was unused.
 
 === New features in 1.23 ===
 * ResourceLoader can utilize the Web Storage API to cache modules client-side.
@@ -130,6 +132,9 @@ production.
 * Added BaseTemplateAfterPortlet hook to allow injecting html after portlets in skins.
 * Support has been added for a JSON based localisation file format. The
   installer has been updated to use it.
+* Changes to content typography (fonts, line-height, etc.). See
+  https://www.mediawiki.org/wiki/Typography_refresh for further information.
+* ResourceLoader: mw.loader.using() now implements a Promise interface.
 
 === Bug fixes in 1.23 ===
 * (bug 41759) The "updated since last visit" markers (on history pages, recent
@@ -140,6 +145,10 @@ production.
   when the email address is already confirmed. Also, consistently use
   "confirmed", rather than "authenticated", when messaging whether or not the
   user has confirmed an email address.
+* (bug 19415) action=render no longer shows section edit links. This affects
+  behavior of several other features where (bogus) section edit links will
+  disappear, such as file description pages loaded via $wgUseInstantCommons or
+  pages transcluded cross-wiki via $wgEnableScaryTranscluding.
 * (bug 56912) Show correct link color on cached result of Special:DeadendPages.
 * Classes TitleListDependency and TitleDependency have been removed, as they
   have been found unused in core and extensions for a long time.
@@ -222,6 +231,8 @@ production.
 * (bug 42026) Added ucshow={new,!new,top,!top} to list=usercontribs.
   Also added newonly to action=feedcontributions.
 * (bug 42026) Deprecated uctoponly in favor of ucshow=top.
+* list=search no longer has a "srredirects" parameter. Redirects are now
+  included in all searches.
 
 === Languages updated in 1.23 ===
 
@@ -229,6 +240,8 @@ MediaWiki supports over 350 languages. Many localisations are updated
 regularly. Below only new and removed languages are listed, as well as
 changes to languages because of Bugzilla reports.
 
+* Support was added for Algerian Spoken Arabic (arq).
+* Support was added for Riograndenser Hunsrückisch (hrx).
 * Support was added for Northern Luri (lrc).
 
 === Other changes in 1.23 ===
@@ -303,6 +316,8 @@ changes to languages because of Bugzilla reports.
   us to extend parser tests to accommodate additional input/output
   pairs, such as "!!html/parsoid" (for the output of the Parsoid
   parser, where it differs from the PHP parser).
+* Special:Search no longer has an "include redirects" option on the advanced
+  tab. Redirects are now included in all searches.
 
 ==== Removed classes ====
 * FakeMemCachedClient (deprecated in 1.18)
diff --git a/api.php b/api.php
index 554c272..e55ec75 100644 (file)
--- a/api.php
+++ b/api.php
@@ -40,7 +40,6 @@ if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.
        wfPHPVersionError( 'api.php' );
 }
 
-// Initialise common code.
 require __DIR__ . '/includes/WebStart.php';
 
 wfProfileIn( 'api.php' );
index 1828b7b..524dfd5 100644 (file)
--- a/api.php5
+++ b/api.php5
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of api.php to used in web server requiring .php5 extension
- * to execute scripts with PHP5 engine.
+ * Version of api.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,4 +21,4 @@
  * @file
  */
 
-require 'api.php';
+require './api.php';
index 391fb29..a0976af 100644 (file)
@@ -150,6 +150,10 @@ function wfImageAuthMain() {
                return;
        }
 
+       if ( $wgRequest->getCheck( 'download' ) ) {
+               header( 'Content-Disposition: attachment' );
+       }
+
        // Stream the requested file
        wfDebugLog( 'img_auth', "Streaming `" . $filename . "`." );
        $repo->streamFile( $filename, array( 'Cache-Control: private', 'Vary: Cookie' ) );
index a86d7c0..7aee69a 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of img_auth.php to used in web server requiring .php5 extension
- * to execute scripts with PHP5 engine.
+ * Version of img_auth.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 334cee3..4b5ca75 100644 (file)
@@ -28,7 +28,6 @@
  * @ingroup Ajax
  */
 class AjaxResponse {
-
        /**
         * Number of seconds to get the response cached by a proxy
         * @var int $mCacheDuration
@@ -184,10 +183,10 @@ class AjaxResponse {
                                }
 
                        } else {
-
                                # Let the client do the caching. Cache is not purged.
                                header ( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $this->mCacheDuration ) . " GMT" );
-                               header ( "Cache-Control: s-maxage={$this->mCacheDuration},public,max-age={$this->mCacheDuration}" );
+                               header ( "Cache-Control: s-maxage={$this->mCacheDuration}," .
+                                       "public,max-age={$this->mCacheDuration}" );
                        }
 
                } else {
@@ -237,17 +236,22 @@ class AjaxResponse {
                        wfDebug( "$fname: -- client send If-Modified-Since: " . $modsince . "\n", 'log' );
                        wfDebug( "$fname: --  we might send Last-Modified : $lastmod\n", 'log' );
 
-                       if ( ( $ismodsince >= $timestamp ) && $wgUser->validateCache( $ismodsince ) && $ismodsince >= $wgCacheEpoch ) {
+                       if ( ( $ismodsince >= $timestamp )
+                               && $wgUser->validateCache( $ismodsince ) &&
+                               $ismodsince >= $wgCacheEpoch
+                       ) {
                                ini_set( 'zlib.output_compression', 0 );
                                $this->setResponseCode( "304 Not Modified" );
                                $this->disable();
                                $this->mLastModified = $lastmod;
 
-                               wfDebug( "$fname: CACHED client: $ismodsince ; user: {$wgUser->getTouched()} ; page: $timestamp ; site $wgCacheEpoch\n", 'log' );
+                               wfDebug( "$fname: CACHED client: $ismodsince ; user: {$wgUser->getTouched()} ; " .
+                                       "page: $timestamp ; site $wgCacheEpoch\n", 'log' );
 
                                return true;
                        } else {
-                               wfDebug( "$fname: READY  client: $ismodsince ; user: {$wgUser->getTouched()} ; page: $timestamp ; site $wgCacheEpoch\n", 'log' );
+                               wfDebug( "$fname: READY  client: $ismodsince ; user: {$wgUser->getTouched()} ; " .
+                                       "page: $timestamp ; site $wgCacheEpoch\n", 'log' );
                                $this->mLastModified = $lastmod;
                        }
                } else {
index b132ca9..1133724 100644 (file)
@@ -367,9 +367,11 @@ class Article implements Page {
         * Does *NOT* follow redirects.
         *
         * @protected
-        * @note this is really internal functionality that should really NOT be used by other functions. For accessing
-        *       article content, use the WikiPage class, especially WikiBase::getContent(). However, a lot of legacy code
-        *       uses this method to retrieve page text from the database, so the function has to remain public for now.
+        * @note This is really internal functionality that should really NOT be
+        * used by other functions. For accessing article content, use the WikiPage
+        * class, especially WikiBase::getContent(). However, a lot of legacy code
+        * uses this method to retrieve page text from the database, so the function
+        * has to remain public for now.
         *
         * @return mixed string containing article contents, or false if null
         * @deprecated in 1.21, use WikiPage::getContent() instead
@@ -397,9 +399,10 @@ class Article implements Page {
        /**
         * Get text content object
         * Does *NOT* follow redirects.
-        * TODO: when is this null?
+        * @todo When is this null?
         *
-        * @note code that wants to retrieve page content from the database should use WikiPage::getContent().
+        * @note Code that wants to retrieve page content from the database should
+        * use WikiPage::getContent().
         *
         * @return Content|null|boolean false
         *
@@ -434,7 +437,8 @@ class Article implements Page {
                        }
                } else {
                        if ( !$this->mPage->getLatest() ) {
-                               wfDebug( __METHOD__ . " failed to find page data for title " . $this->getTitle()->getPrefixedText() . "\n" );
+                               wfDebug( __METHOD__ . " failed to find page data for title " .
+                                       $this->getTitle()->getPrefixedText() . "\n" );
                                wfProfileOut( __METHOD__ );
                                return false;
                        }
@@ -442,7 +446,8 @@ class Article implements Page {
                        $this->mRevision = $this->mPage->getRevision();
 
                        if ( !$this->mRevision ) {
-                               wfDebug( __METHOD__ . " failed to retrieve current page, rev_id " . $this->mPage->getLatest() . "\n" );
+                               wfDebug( __METHOD__ . " failed to retrieve current page, rev_id " .
+                                       $this->mPage->getLatest() . "\n" );
                                wfProfileOut( __METHOD__ );
                                return false;
                        }
@@ -450,7 +455,11 @@ class Article implements Page {
 
                // @todo FIXME: Horrible, horrible! This content-loading interface just plain sucks.
                // We should instead work with the Revision object when we need it...
-               $this->mContentObject = $this->mRevision->getContent( Revision::FOR_THIS_USER, $this->getContext()->getUser() ); // Loads if user is allowed
+               // Loads if user is allowed
+               $this->mContentObject = $this->mRevision->getContent(
+                       Revision::FOR_THIS_USER,
+                       $this->getContext()->getUser()
+               );
                $this->mRevIdFetched = $this->mRevision->getId();
 
                wfRunHooks( 'ArticleAfterFetchContentObject', array( &$this, &$this->mContentObject ) );
@@ -711,7 +720,8 @@ class Article implements Page {
                                        # Don't cache a dirty ParserOutput object
                                        if ( $poolArticleView->getIsDirty() ) {
                                                $outputPage->setSquidMaxage( 0 );
-                                               $outputPage->addHTML( "<!-- parser cache is expired, sending anyway due to pool overload-->\n" );
+                                               $outputPage->addHTML( "<!-- parser cache is expired, " .
+                                                       "sending anyway due to pool overload-->\n" );
                                        }
 
                                        $outputDone = true;
@@ -794,13 +804,21 @@ class Article implements Page {
                }
 
                $contentHandler = $rev->getContentHandler();
-               $de = $contentHandler->createDifferenceEngine( $this->getContext(), $oldid, $diff, $rcid, $purge, $unhide );
+               $de = $contentHandler->createDifferenceEngine(
+                       $this->getContext(),
+                       $oldid,
+                       $diff,
+                       $rcid,
+                       $purge,
+                       $unhide
+               );
 
                // DifferenceEngine directly fetched the revision:
                $this->mRevIdFetched = $de->mNewid;
                $de->showDiffPage( $diffOnly );
 
-               // Run view updates for the newer revision being diffed (and shown below the diff if not $diffOnly)
+               // Run view updates for the newer revision being diffed (and shown
+               // below the diff if not $diffOnly).
                list( $old, $new ) = $de->mapDiffPrevNext( $oldid, $diff );
                // New can be false, convert it to 0 - this conveniently means the latest revision
                $this->mPage->doViewUpdates( $user, (int)$new );
@@ -813,7 +831,8 @@ class Article implements Page {
         * This is hooked by SyntaxHighlight_GeSHi to do syntax highlighting of these
         * page views.
         *
-        * @param bool $showCacheHint whether to show a message telling the user to clear the browser cache (default: true).
+        * @param bool $showCacheHint whether to show a message telling the user
+        *   to clear the browser cache (default: true).
         */
        protected function showCssOrJsPage( $showCacheHint = true ) {
                $outputPage = $this->getContext()->getOutput();
@@ -822,15 +841,20 @@ class Article implements Page {
                        $dir = $this->getContext()->getLanguage()->getDir();
                        $lang = $this->getContext()->getLanguage()->getCode();
 
-                       $outputPage->wrapWikiMsg( "<div id='mw-clearyourcache' lang='$lang' dir='$dir' class='mw-content-$dir'>\n$1\n</div>",
-                               'clearyourcache' );
+                       $outputPage->wrapWikiMsg(
+                               "<div id='mw-clearyourcache' lang='$lang' dir='$dir' class='mw-content-$dir'>\n$1\n</div>",
+                               'clearyourcache'
+                       );
                }
 
                $this->fetchContentObject();
 
                if ( $this->mContentObject ) {
                        // Give hooks a chance to customise the output
-                       if ( ContentHandler::runLegacyHooks( 'ShowRawCssJs', array( $this->mContentObject, $this->getTitle(), $outputPage ) ) ) {
+                       if ( ContentHandler::runLegacyHooks(
+                               'ShowRawCssJs',
+                               array( $this->mContentObject, $this->getTitle(), $outputPage ) )
+                       ) {
                                $po = $this->mContentObject->getParserOutput( $this->getTitle() );
                                $outputPage->addHTML( $po->getText() );
                        }
@@ -1007,7 +1031,10 @@ class Article implements Page {
        public function showNamespaceHeader() {
                if ( $this->getTitle()->isTalkPage() ) {
                        if ( !wfMessage( 'talkpageheader' )->isDisabled() ) {
-                               $this->getContext()->getOutput()->wrapWikiMsg( "<div class=\"mw-talkpageheader\">\n$1\n</div>", array( 'talkpageheader' ) );
+                               $this->getContext()->getOutput()->wrapWikiMsg(
+                                       "<div class=\"mw-talkpageheader\">\n$1\n</div>",
+                                       array( 'talkpageheader' )
+                               );
                        }
                }
        }
@@ -1017,7 +1044,9 @@ class Article implements Page {
         */
        public function showViewFooter() {
                # check if we're displaying a [[User talk:x.x.x.x]] anonymous talk page
-               if ( $this->getTitle()->getNamespace() == NS_USER_TALK && IP::isValid( $this->getTitle()->getText() ) ) {
+               if ( $this->getTitle()->getNamespace() == NS_USER_TALK
+                       && IP::isValid( $this->getTitle()->getText() )
+               ) {
                        $this->getContext()->getOutput()->addWikiMsg( 'anontalkpagetext' );
                }
 
@@ -1025,7 +1054,6 @@ class Article implements Page {
                $patrolFooterShown = $this->showPatrolFooter();
 
                wfRunHooks( 'ArticleViewFooter', array( $this, $patrolFooterShown ) );
-
        }
 
        /**
@@ -1045,7 +1073,9 @@ class Article implements Page {
                $cache = wfGetMainCache();
                $rc = false;
 
-               if ( !$this->getTitle()->quickUserCan( 'patrol', $user ) || !( $wgUseRCPatrol || $wgUseNPPatrol ) ) {
+               if ( !$this->getTitle()->quickUserCan( 'patrol', $user )
+                       || !( $wgUseRCPatrol || $wgUseNPPatrol )
+               ) {
                        // Patrolling is disabled or the user isn't allowed to
                        return false;
                }
@@ -1064,7 +1094,9 @@ class Article implements Page {
                        return false;
                }
 
-               if ( $this->mRevision && !RecentChange::isInRCLifespan( $this->mRevision->getTimestamp(), 21600 ) ) {
+               if ( $this->mRevision
+                       && !RecentChange::isInRCLifespan( $this->mRevision->getTimestamp(), 21600 )
+               ) {
                        // The current revision is already older than what could be in the RC table
                        // 6h tolerance because the RC might not be cleaned out regularly
                        wfProfileOut( __METHOD__ );
@@ -1079,7 +1111,9 @@ class Article implements Page {
                        __METHOD__
                );
 
-               if ( $oldestRevisionTimestamp && RecentChange::isInRCLifespan( $oldestRevisionTimestamp, 21600 ) ) {
+               if ( $oldestRevisionTimestamp
+                       && RecentChange::isInRCLifespan( $oldestRevisionTimestamp, 21600 )
+               ) {
                        // 6h tolerance because the RC might not be cleaned out regularly
                        $rc = RecentChange::newFromConds(
                                array(
@@ -1153,7 +1187,9 @@ class Article implements Page {
                $validUserPage = false;
 
                # Show info in user (talk) namespace. Does the user exist? Is he blocked?
-               if ( $this->getTitle()->getNamespace() == NS_USER || $this->getTitle()->getNamespace() == NS_USER_TALK ) {
+               if ( $this->getTitle()->getNamespace() == NS_USER
+                       || $this->getTitle()->getNamespace() == NS_USER_TALK
+               ) {
                        $parts = explode( '/', $this->getTitle()->getText() );
                        $rootPart = $parts[0];
                        $user = User::newFromName( $rootPart, false /* allow IP users*/ );
@@ -1446,9 +1482,7 @@ class Article implements Page {
 
                // the loop prepends the arrow image before the link, so the first case needs to be outside
 
-               /**
-                * @var $title Title
-                */
+               /** @var $title Title */
                $title = array_shift( $target );
 
                if ( $forceKnown ) {
@@ -1459,13 +1493,27 @@ class Article implements Page {
 
                $nextRedirect = $wgStylePath . '/common/images/nextredirect' . $imageDir . '.png';
                $alt = $lang->isRTL() ? '←' : '→';
-               // Automatically append redirect=no to each link, since most of them are redirect pages themselves.
+
+               // Automatically append redirect=no to each link, since most of them are
+               // redirect pages themselves.
+               /** @var Title $rt */
                foreach ( $target as $rt ) {
                        $link .= Html::element( 'img', array( 'src' => $nextRedirect, 'alt' => $alt ) );
                        if ( $forceKnown ) {
-                               $link .= Linker::linkKnown( $rt, htmlspecialchars( $rt->getFullText(), array(), array( 'redirect' => 'no' ) ) );
+                               $link .= Linker::linkKnown(
+                                       $rt,
+                                       htmlspecialchars( $rt->getFullText(),
+                                       array(),
+                                       array( 'redirect' => 'no' )
+                               )
+                               );
                        } else {
-                               $link .= Linker::link( $rt, htmlspecialchars( $rt->getFullText() ), array(), array( 'redirect' => 'no' ) );
+                               $link .= Linker::link(
+                                       $rt,
+                                       htmlspecialchars( $rt->getFullText() ),
+                                       array(),
+                                       array( 'redirect' => 'no' )
+                               );
                        }
                }
 
@@ -1480,6 +1528,7 @@ class Article implements Page {
         */
        public function render() {
                $this->getContext()->getOutput()->setArticleBodyOnly( true );
+               $this->getContext()->getOutput()->enableSectionEditLinks( false );
                $this->view();
        }
 
@@ -1572,7 +1621,8 @@ class Article implements Page {
                        try {
                                $reason = $this->generateReason( $hasHistory );
                        } catch ( MWException $e ) {
-                               # if a page is horribly broken, we still want to be able to delete it. so be lenient about errors here.
+                               # if a page is horribly broken, we still want to be able to
+                               # delete it. So be lenient about errors here.
                                wfDebug( "Error while building auto delete summary: $e" );
                                $reason = '';
                        }
@@ -1594,7 +1644,11 @@ class Article implements Page {
                        if ( $this->mTitle->isBigDeletion() ) {
                                global $wgDeleteRevisionsLimit;
                                $this->getContext()->getOutput()->wrapWikiMsg( "<div class='error'>\n$1\n</div>\n",
-                                       array( 'delete-warning-toobig', $this->getContext()->getLanguage()->formatNum( $wgDeleteRevisionsLimit ) ) );
+                                       array(
+                                               'delete-warning-toobig',
+                                               $this->getContext()->getLanguage()->formatNum( $wgDeleteRevisionsLimit )
+                                       )
+                               );
                        }
                }
 
@@ -1647,9 +1701,14 @@ class Article implements Page {
                                        Xml::label( wfMessage( 'deletecomment' )->text(), 'wpDeleteReasonList' ) .
                                "</td>
                                <td class='mw-input'>" .
-                                       Xml::listDropDown( 'wpDeleteReasonList',
+                                       Xml::listDropDown(
+                                               'wpDeleteReasonList',
                                                wfMessage( 'deletereason-dropdown' )->inContentLanguage()->text(),
-                                               wfMessage( 'deletereasonotherlist' )->inContentLanguage()->text(), '', 'wpReasonDropDown', 1 ) .
+                                               wfMessage( 'deletereasonotherlist' )->inContentLanguage()->text(),
+                                               '',
+                                               'wpReasonDropDown',
+                                               1
+                                       ) .
                                "</td>
                        </tr>
                        <tr id=\"wpDeleteReasonRow\">
@@ -1690,7 +1749,10 @@ class Article implements Page {
                        </tr>" .
                        Xml::closeElement( 'table' ) .
                        Xml::closeElement( 'fieldset' ) .
-                       Html::hidden( 'wpEditToken', $user->getEditToken( array( 'delete', $this->getTitle()->getPrefixedText() ) ) ) .
+                       Html::hidden(
+                               'wpEditToken',
+                               $user->getEditToken( array( 'delete', $this->getTitle()->getPrefixedText() ) )
+                       ) .
                        Xml::closeElement( 'form' );
 
                        if ( $user->isAllowed( 'editinterface' ) ) {
@@ -1715,13 +1777,14 @@ class Article implements Page {
 
        /**
         * Perform a deletion and output success or failure messages
-        * @param $reason
-        * @param $suppress bool
+        * @param string $reason
+        * @param bool $suppress
         */
        public function doDelete( $reason, $suppress = false ) {
                $error = '';
                $outputPage = $this->getContext()->getOutput();
                $status = $this->mPage->doDeleteArticleReal( $reason, $suppress, 0, true, $error );
+
                if ( $status->isGood() ) {
                        $deleted = $this->getTitle()->getPrefixedText();
 
@@ -1733,7 +1796,11 @@ class Article implements Page {
                        $outputPage->addWikiMsg( 'deletedtext', wfEscapeWikiText( $deleted ), $loglink );
                        $outputPage->returnToMain( false );
                } else {
-                       $outputPage->setPageTitle( wfMessage( 'cannotdelete-title', $this->getTitle()->getPrefixedText() ) );
+                       $outputPage->setPageTitle(
+                               wfMessage( 'cannotdelete-title',
+                                       $this->getTitle()->getPrefixedText() )
+                       );
+
                        if ( $error == '' ) {
                                $outputPage->addWikiText(
                                        "<div class=\"error mw-error-cannotdelete\">\n" . $status->getWikiText() . "\n</div>"
@@ -1878,7 +1945,8 @@ class Article implements Page {
                if ( $this->mContext instanceof IContextSource ) {
                        return $this->mContext;
                } else {
-                       wfDebug( __METHOD__ . " called and \$mContext is null. Return RequestContext::getMain(); for sanity\n" );
+                       wfDebug( __METHOD__ . " called and \$mContext is null. " .
+                               "Return RequestContext::getMain(); for sanity\n" );
                        return RequestContext::getMain();
                }
        }
@@ -1978,7 +2046,9 @@ class Article implements Page {
         * @param $user User
         * @return Status
         */
-       public function doUpdateRestrictions( array $limit, array $expiry, &$cascade, $reason, User $user ) {
+       public function doUpdateRestrictions( array $limit, array $expiry, &$cascade,
+               $reason, User $user
+       ) {
                return $this->mPage->doUpdateRestrictions( $limit, $expiry, $cascade, $reason, $user );
        }
 
@@ -1989,7 +2059,9 @@ class Article implements Page {
         * @param $expiry array
         * @return bool
         */
-       public function updateRestrictions( $limit = array(), $reason = '', &$cascade = 0, $expiry = array() ) {
+       public function updateRestrictions( $limit = array(), $reason = '',
+               &$cascade = 0, $expiry = array()
+       ) {
                return $this->mPage->doUpdateRestrictions(
                        $limit,
                        $expiry,
@@ -2007,7 +2079,9 @@ class Article implements Page {
         * @param $error string
         * @return bool
         */
-       public function doDeleteArticle( $reason, $suppress = false, $id = 0, $commit = true, &$error = '' ) {
+       public function doDeleteArticle( $reason, $suppress = false, $id = 0,
+               $commit = true, &$error = ''
+       ) {
                return $this->mPage->doDeleteArticle( $reason, $suppress, $id, $commit, $error );
        }
 
index 0873d87..361ac9d 100644 (file)
@@ -1059,6 +1059,15 @@ $wgAutoloadLocalClasses = array(
        'UserloginTemplate' => 'includes/templates/Userlogin.php',
        'UsercreateTemplate' => 'includes/templates/Usercreate.php',
 
+       # includes/title
+       'PageLinkRenderer' => 'includes/title/PageLinkRenderer.php',
+       'TitleFormatter' => 'includes/title/TitleFormatter.php',
+       'TitleParser' => 'includes/title/TitleParser.php',
+       'TitleValue' => 'includes/title/TitleValue.php',
+       'MalformedTitleException' => 'includes/title/MalformedTitleException.php',
+       'MediaWikiPageLinkRenderer' => 'includes/title/MediaWikiPageLinkRenderer.php',
+       'MediaWikiTitleCodec' => 'includes/title/MediaWikiTitleCodec.php',
+
        # includes/upload
        'UploadBase' => 'includes/upload/UploadBase.php',
        'UploadFromFile' => 'includes/upload/UploadFromFile.php',
index 170d7ab..197ad9c 100644 (file)
@@ -197,7 +197,8 @@ class Autopromote {
                                return in_array( 'bot', User::getGroupPermissions( $user->getGroups() ) );
                        default:
                                $result = null;
-                               wfRunHooks( 'AutopromoteCondition', array( $cond[0], array_slice( $cond, 1 ), $user, &$result ) );
+                               wfRunHooks( 'AutopromoteCondition', array( $cond[0],
+                                       array_slice( $cond, 1 ), $user, &$result ) );
                                if ( $result === null ) {
                                        throw new MWException( "Unrecognized condition {$cond[0]} for autopromotion!" );
                                }
index 08428b4..95a8386 100644 (file)
@@ -435,7 +435,8 @@ class Block {
         * Update a block in the DB with new parameters.
         * The ID field needs to be loaded first.
         *
-        * @return bool|array False on failure, array on success: ('id' => block ID, 'autoIds' => array of autoblock IDs)
+        * @return bool|array False on failure, array on success:
+        *   ('id' => block ID, 'autoIds' => array of autoblock IDs)
         */
        public function update() {
                wfDebug( "Block::update; timestamp {$this->mTimestamp}\n" );
@@ -686,7 +687,8 @@ class Block {
                wfDebug( "Autoblocking {$this->getTarget()}@" . $autoblockIP . "\n" );
                $autoblock->setTarget( $autoblockIP );
                $autoblock->setBlocker( $this->getBlocker() );
-               $autoblock->mReason = wfMessage( 'autoblocker', $this->getTarget(), $this->mReason )->inContentLanguage()->plain();
+               $autoblock->mReason = wfMessage( 'autoblocker', $this->getTarget(), $this->mReason )
+                       ->inContentLanguage()->plain();
                $timestamp = wfTimestampNow();
                $autoblock->mTimestamp = $timestamp;
                $autoblock->mAuto = 1;
@@ -983,7 +985,10 @@ class Block {
                        # passed by some callers (bug 29116)
                        return null;
 
-               } elseif ( in_array( $type, array( Block::TYPE_USER, Block::TYPE_IP, Block::TYPE_RANGE, null ) ) ) {
+               } elseif ( in_array(
+                       $type,
+                       array( Block::TYPE_USER, Block::TYPE_IP, Block::TYPE_RANGE, null ) )
+               ) {
                        $block = new Block();
                        $block->fromMaster( $fromMaster );
 
index f6cd3a6..cfa4160 100644 (file)
@@ -28,7 +28,6 @@
  * @since 1.20
  */
 interface ICacheHelper {
-
        /**
         * Sets if the cache should be enabled or not.
         *
@@ -81,7 +80,6 @@ interface ICacheHelper {
         * @param integer $cacheExpiry
         */
        function setExpiry( $cacheExpiry );
-
 }
 
 /**
@@ -103,7 +101,6 @@ interface ICacheHelper {
  * @since 1.20
  */
 class CacheHelper implements ICacheHelper {
-
        /**
         * The time to live for the cache, in seconds or a unix timestamp indicating the point of expiry.
         *
@@ -275,7 +272,8 @@ class CacheHelper implements ICacheHelper {
                                $itemKey = array_shift( $itemKey );
 
                                if ( !is_integer( $itemKey ) ) {
-                                       wfWarn( "Attempted to get item with non-numeric key while the next item in the queue has a key ($itemKey) in " . __METHOD__ );
+                                       wfWarn( "Attempted to get item with non-numeric key while " .
+                                               "the next item in the queue has a key ($itemKey) in " . __METHOD__ );
                                } elseif ( is_null( $itemKey ) ) {
                                        wfWarn( "Attempted to get an item while the queue is empty in " . __METHOD__ );
                                } else {
@@ -316,7 +314,11 @@ class CacheHelper implements ICacheHelper {
         */
        public function saveCache() {
                if ( $this->cacheEnabled && $this->hasCached === false && !empty( $this->cachedChunks ) ) {
-                       wfGetCache( CACHE_ANYTHING )->set( $this->getCacheKeyString(), $this->cachedChunks, $this->cacheExpiry );
+                       wfGetCache( CACHE_ANYTHING )->set(
+                               $this->getCacheKeyString(),
+                               $this->cachedChunks,
+                               $this->cacheExpiry
+                       );
                }
        }
 
@@ -381,5 +383,4 @@ class CacheHelper implements ICacheHelper {
        public function setOnInitializedHandler( $handlerFunction ) {
                $this->onInitHandler = $handlerFunction;
        }
-
 }
index df5ad7d..e326ce2 100644 (file)
@@ -26,7 +26,7 @@
  * like to refresh link counts, the objects will be appropriately reinitialized.
  * Member variables are lazy-initialized.
  *
- * TODO: Move some stuff from CategoryPage.php to here, and use that.
+ * @todo Move some stuff from CategoryPage.php to here, and use that.
  */
 class Category {
        /** Name of the category, normalized to DB-key form */
@@ -75,7 +75,8 @@ class Category {
                if ( !$row ) {
                        # Okay, there were no contents.  Nothing to initialize.
                        if ( $this->mTitle ) {
-                               # If there is a title object but no record in the category table, treat this as an empty category
+                               # If there is a title object but no record in the category table,
+                               # treat this as an empty category.
                                $this->mID = false;
                                $this->mName = $this->mTitle->getDBkey();
                                $this->mPages = 0;
@@ -155,11 +156,13 @@ class Category {
        /**
         * Factory function, for constructing a Category object from a result set
         *
-        * @param $row result set row, must contain the cat_xxx fields. If the fields are null,
-        *        the resulting Category object will represent an empty category if a title object
-        *        was given. If the fields are null and no title was given, this method fails and returns false.
-        * @param Title $title optional title object for the category represented by the given row.
-        *        May be provided if it is already known, to avoid having to re-create a title object later.
+        * @param $row Result set row, must contain the cat_xxx fields. If the
+        *   fields are null, the resulting Category object will represent an empty
+        *   category if a title object was given. If the fields are null and no
+        *   title was given, this method fails and returns false.
+        * @param Title $title optional title object for the category represented by
+        *   the given row. May be provided if it is already known, to avoid having
+        *   to re-create a title object later.
         * @return Category
         */
        public static function newFromRow( $row, $title = null ) {
@@ -177,7 +180,8 @@ class Category {
                                # but we can't know that here...
                                return false;
                        } else {
-                               $cat->mName = $title->getDBkey(); # if we have a title object, fetch the category name from there
+                               # if we have a title object, fetch the category name from there
+                               $cat->mName = $title->getDBkey();
                        }
 
                        $cat->mID = false;
index 4027bef..183c5f2 100644 (file)
@@ -76,7 +76,9 @@ class CategoryViewer extends ContextSource {
         * @param array $until An array with 3 keys for until of each section (since 1.17)
         * @param $query Array
         */
-       function __construct( $title, IContextSource $context, $from = array(), $until = array(), $query = array() ) {
+       function __construct( $title, IContextSource $context, $from = array(),
+               $until = array(), $query = array()
+       ) {
                global $wgCategoryPagingLimit;
                $this->title = $title;
                $this->setContext( $context );
@@ -423,7 +425,12 @@ class CategoryViewer extends ContextSource {
                        $countmsg = $this->getCountMessage( $rescnt, $dbcnt, 'file' );
 
                        $r .= "<div id=\"mw-category-media\">\n";
-                       $r .= '<h2>' . $this->msg( 'category-media-header', wfEscapeWikiText( $this->title->getText() ) )->text() . "</h2>\n";
+                       $r .= '<h2>' .
+                               $this->msg(
+                                       'category-media-header',
+                                       wfEscapeWikiText( $this->title->getText() )
+                               )->text() .
+                               "</h2>\n";
                        $r .= $countmsg;
                        $r .= $this->getSectionPagingLinks( 'file' );
                        if ( $this->showGallery ) {
@@ -447,7 +454,9 @@ class CategoryViewer extends ContextSource {
        private function getSectionPagingLinks( $type ) {
                if ( isset( $this->until[$type] ) && $this->until[$type] !== null ) {
                        return $this->pagingLinks( $this->nextPage[$type], $this->until[$type], $type );
-               } elseif ( $this->nextPage[$type] !== null || ( isset( $this->from[$type] ) && $this->from[$type] !== null ) ) {
+               } elseif ( $this->nextPage[$type] !== null
+                       || ( isset( $this->from[$type] ) && $this->from[$type] !== null )
+               ) {
                        return $this->pagingLinks( $this->from[$type], $this->nextPage[$type], $type );
                } else {
                        return '';
@@ -562,7 +571,8 @@ class CategoryViewer extends ContextSource {
        static function shortList( $articles, $articles_start_char ) {
                $r = '<h3>' . htmlspecialchars( $articles_start_char[0] ) . "</h3>\n";
                $r .= '<ul><li>' . $articles[0] . '</li>';
-               for ( $index = 1; $index < count( $articles ); $index++ ) {
+               $articleCount = count( $articles );
+               for ( $index = 1; $index < $articleCount; $index++ ) {
                        if ( $articles_start_char[$index] != $articles_start_char[$index - 1] ) {
                                $r .= "</ul><h3>" . htmlspecialchars( $articles_start_char[$index] ) . "</h3>\n<ul>";
                        }
index 53f2955..f73ec1f 100644 (file)
  */
 
 class ChangeTags {
-
        /**
         * Creates HTML for the given tags
         *
         * @param string $tags Comma-separated list of tags
         * @param string $page A label for the type of action which is being displayed,
-        *                     for example: 'history', 'contributions' or 'newpages'
-        *
-        * @return Array with two items: (html, classes)
-        *            - html: String: HTML for displaying the tags (empty string when param $tags is empty)
-        *            - classes: Array of strings: CSS classes used in the generated html, one class for each tag
-        *
+        *   for example: 'history', 'contributions' or 'newpages'
+        * @return array Array with two items: (html, classes)
+        *   - html: String: HTML for displaying the tags (empty string when param $tags is empty)
+        *   - classes: Array of strings: CSS classes used in the generated html, one class for each tag
         */
        public static function formatSummaryRow( $tags, $page ) {
                global $wgLang;
@@ -90,7 +87,9 @@ class ChangeTags {
         *
         * @exception MWException when $rc_id, $rev_id and $log_id are all null
         */
-       public static function addTags( $tags, $rc_id = null, $rev_id = null, $log_id = null, $params = null ) {
+       public static function addTags( $tags, $rc_id = null, $rev_id = null,
+               $log_id = null, $params = null
+       ) {
                if ( !is_array( $tags ) ) {
                        $tags = array( $tags );
                }
@@ -106,19 +105,45 @@ class ChangeTags {
 
                // Might as well look for rcids and so on.
                if ( !$rc_id ) {
-                       $dbr = wfGetDB( DB_MASTER ); // Info might be out of date, somewhat fractionally, on slave.
+                       // Info might be out of date, somewhat fractionally, on slave.
+                       $dbr = wfGetDB( DB_MASTER );
                        if ( $log_id ) {
-                               $rc_id = $dbr->selectField( 'recentchanges', 'rc_id', array( 'rc_logid' => $log_id ), __METHOD__ );
+                               $rc_id = $dbr->selectField(
+                                       'recentchanges',
+                                       'rc_id',
+                                       array( 'rc_logid' => $log_id ),
+                                       __METHOD__
+                               );
                        } elseif ( $rev_id ) {
-                               $rc_id = $dbr->selectField( 'recentchanges', 'rc_id', array( 'rc_this_oldid' => $rev_id ), __METHOD__ );
+                               $rc_id = $dbr->selectField(
+                                       'recentchanges',
+                                       'rc_id',
+                                       array( 'rc_this_oldid' => $rev_id ),
+                                       __METHOD__
+                               );
                        }
                } elseif ( !$log_id && !$rev_id ) {
-                       $dbr = wfGetDB( DB_MASTER ); // Info might be out of date, somewhat fractionally, on slave.
-                       $log_id = $dbr->selectField( 'recentchanges', 'rc_logid', array( 'rc_id' => $rc_id ), __METHOD__ );
-                       $rev_id = $dbr->selectField( 'recentchanges', 'rc_this_oldid', array( 'rc_id' => $rc_id ), __METHOD__ );
+                       // Info might be out of date, somewhat fractionally, on slave.
+                       $dbr = wfGetDB( DB_MASTER );
+                       $log_id = $dbr->selectField(
+                               'recentchanges',
+                               'rc_logid',
+                               array( 'rc_id' => $rc_id ),
+                               __METHOD__
+                       );
+                       $rev_id = $dbr->selectField(
+                               'recentchanges',
+                               'rc_this_oldid',
+                               array( 'rc_id' => $rc_id ),
+                               __METHOD__
+                       );
                }
 
-               $tsConds = array_filter( array( 'ts_rc_id' => $rc_id, 'ts_rev_id' => $rev_id, 'ts_log_id' => $log_id ) );
+               $tsConds = array_filter( array(
+                       'ts_rc_id' => $rc_id,
+                       'ts_rev_id' => $rev_id,
+                       'ts_log_id' => $log_id )
+               );
 
                ## Update the summary row.
                $prevTags = $dbr->selectField( 'tag_summary', 'ts_tags', $tsConds, __METHOD__ );
@@ -222,24 +247,45 @@ class ChangeTags {
         *        - if $fullForm is false: Array with
         *        - if $fullForm is true: String, html fragment
         */
-       public static function buildTagFilterSelector( $selected = '', $fullForm = false, Title $title = null ) {
+       public static function buildTagFilterSelector( $selected = '',
+               $fullForm = false, Title $title = null
+       ) {
                global $wgUseTagFilter;
 
                if ( !$wgUseTagFilter || !count( self::listDefinedTags() ) ) {
                        return $fullForm ? '' : array();
                }
 
-               $data = array( Html::rawElement( 'label', array( 'for' => 'tagfilter' ), wfMessage( 'tag-filter' )->parse() ),
-                       Xml::input( 'tagfilter', 20, $selected, array( 'class' => 'mw-tagfilter-input', 'id' => 'tagfilter' ) ) );
+               $data = array(
+                       Html::rawElement(
+                               'label',
+                               array( 'for' => 'tagfilter' ),
+                               wfMessage( 'tag-filter' )->parse()
+                       ),
+                       Xml::input(
+                               'tagfilter',
+                               20,
+                               $selected,
+                               array( 'class' => 'mw-tagfilter-input', 'id' => 'tagfilter' )
+                       )
+               );
 
                if ( !$fullForm ) {
                        return $data;
                }
 
                $html = implode( '&#160;', $data );
-               $html .= "\n" . Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMessage( 'tag-filter-submit' )->text() ) );
+               $html .= "\n" .
+                       Xml::element(
+                               'input',
+                               array( 'type' => 'submit', 'value' => wfMessage( 'tag-filter-submit' )->text() )
+                       );
                $html .= "\n" . Html::hidden( 'title', $title->getPrefixedText() );
-               $html = Xml::tags( 'form', array( 'action' => $title->getLocalURL(), 'class' => 'mw-tagfilter-form', 'method' => 'get' ), $html );
+               $html = Xml::tags(
+                       'form',
+                       array( 'action' => $title->getLocalURL(), 'class' => 'mw-tagfilter-form', 'method' => 'get' ),
+                       $html
+               );
 
                return $html;
        }
index 71851d5..871319c 100644 (file)
@@ -4870,17 +4870,6 @@ $wgCookiePrefix = false;
  */
 $wgCookieHttpOnly = true;
 
-/**
- * If the requesting browser matches a regex in this blacklist, we won't
- * send it cookies with HttpOnly mode, even if $wgCookieHttpOnly is on.
- */
-$wgHttpOnlyBlacklist = array(
-       // Internet Explorer for Mac; sometimes the cookies work, sometimes
-       // they don't. It's difficult to predict, as combinations of path
-       // and expiration options affect its parsing.
-       '/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/',
-);
-
 /**
  * A list of cookies that vary the cache (for use by extensions)
  */
@@ -5531,9 +5520,10 @@ $wgGitBin = '/usr/bin/git';
  * @since 1.20
  */
 $wgGitRepositoryViewers = array(
-       'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' => 'https://git.wikimedia.org/commit/%r/%H',
-       'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)'
-               => 'https://git.wikimedia.org/commit/%r/%H',
+       'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
+               'https://git.wikimedia.org/commit/%r/%H',
+       'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
+               'https://git.wikimedia.org/commit/%r/%H',
 );
 
 /** @} */ # End of maintenance }
@@ -5856,11 +5846,6 @@ $wgRightsText = null;
  */
 $wgRightsIcon = null;
 
-/**
- * Set to an array of metadata terms. Else they will be loaded based on $wgRightsUrl
- */
-$wgLicenseTerms = false;
-
 /**
  * Set this to some HTML to override the rights icon with an arbitrary logo
  * @deprecated since 1.18 Use $wgFooterIcons['copyright']['copyright']
index d4b06fe..f57fc60 100644 (file)
@@ -36,7 +36,6 @@
  * headaches, which may be fatal.
  */
 class EditPage {
-
        /**
         * Status: Article successfully updated
         */
@@ -2082,9 +2081,9 @@ class EditPage {
                }
                # Try to add a custom edit intro, or use the standard one if this is not possible.
                if ( !$this->showCustomIntro() && !$this->mTitle->exists() ) {
-                       $helpLink = Skin::makeInternalOrExternalUrl(
+                       $helpLink = wfExpandUrl( Skin::makeInternalOrExternalUrl(
                                wfMessage( 'helppage' )->inContentLanguage()->text()
-                       );
+                       ) );
                        if ( $wgUser->isLoggedIn() ) {
                                $wgOut->wrapWikiMsg(
                                        // Suppress the external link icon, consider the help url an internal one
@@ -3705,25 +3704,13 @@ HTML
                $wgOut->addReturnTo( $this->getContextTitle(), array( 'action' => 'edit' ) );
        }
 
-       /**
-        * Format an anchor fragment as it would appear for a given section name
-        * @param $text String
-        * @return String
-        * @private
-        */
-       function sectionAnchor( $text ) {
-               global $wgParser;
-               return $wgParser->guessSectionNameFromWikiText( $text );
-       }
-
        /**
         * Check if the browser is on a blacklist of user-agents known to
         * mangle UTF-8 data on form submission. Returns true if Unicode
         * should make it through, false if it's known to be a problem.
         * @return bool
-        * @private
         */
-       function checkUnicodeCompliantBrowser() {
+       private function checkUnicodeCompliantBrowser() {
                global $wgBrowserBlackList, $wgRequest;
 
                $currentbrowser = $wgRequest->getHeader( 'User-Agent' );
@@ -3744,27 +3731,14 @@ HTML
         * Filter an input field through a Unicode de-armoring process if it
         * came from an old browser with known broken Unicode editing issues.
         *
-        * @param $request WebRequest
-        * @param $field String
-        * @return String
-        * @private
-        */
-       function safeUnicodeInput( $request, $field ) {
-               $text = rtrim( $request->getText( $field ) );
-               return $request->getBool( 'safemode' )
-                       ? $this->unmakesafe( $text )
-                       : $text;
-       }
-
-       /**
-        * @param $request WebRequest
-        * @param $text string
+        * @param WebRequest $request
+        * @param string $field
         * @return string
         */
-       function safeUnicodeText( $request, $text ) {
-               $text = rtrim( $text );
+       protected function safeUnicodeInput( $request, $field ) {
+               $text = rtrim( $request->getText( $field ) );
                return $request->getBool( 'safemode' )
-                       ? $this->unmakesafe( $text )
+                       ? $this->unmakeSafe( $text )
                        : $text;
        }
 
@@ -3772,16 +3746,15 @@ HTML
         * Filter an output field through a Unicode armoring process if it is
         * going to an old browser with known broken Unicode editing issues.
         *
-        * @param $text String
-        * @return String
-        * @private
+        * @param string $text
+        * @return string
         */
-       function safeUnicodeOutput( $text ) {
+       protected function safeUnicodeOutput( $text ) {
                global $wgContLang;
                $codedText = $wgContLang->recodeForEdit( $text );
                return $this->checkUnicodeCompliantBrowser()
                        ? $codedText
-                       : $this->makesafe( $codedText );
+                       : $this->makeSafe( $codedText );
        }
 
        /**
@@ -3793,11 +3766,10 @@ HTML
         * Preexisting such character references will have a 0 added to them
         * to ensure that round-trips do not alter the original data.
         *
-        * @param $invalue String
-        * @return String
-        * @private
+        * @param string $invalue
+        * @return string
         */
-       function makesafe( $invalue ) {
+       private function makeSafe( $invalue ) {
                // Armor existing references for reversibility.
                $invalue = strtr( $invalue, array( "&#x" => "&#x0" ) );
 
@@ -3835,13 +3807,13 @@ HTML
         * back to UTF-8. Used to protect data from corruption by broken web browsers
         * as listed in $wgBrowserBlackList.
         *
-        * @param $invalue String
-        * @return String
-        * @private
+        * @param string $invalue
+        * @return string
         */
-       function unmakesafe( $invalue ) {
+       private function unmakeSafe( $invalue ) {
                $result = "";
-               for ( $i = 0; $i < strlen( $invalue ); $i++ ) {
+               $valueLength = strlen( $invalue );
+               for ( $i = 0; $i < $valueLength; $i++ ) {
                        if ( ( substr( $invalue, $i, 3 ) == "&#x" ) && ( $invalue[$i + 3] != '0' ) ) {
                                $i += 3;
                                $hexstring = "";
index 56fe452..4c0eb30 100644 (file)
@@ -594,9 +594,8 @@ class XmlDumpWriter {
         *
         * @param $row object
         * @return string
-        * @access private
         */
-       function openPage( $row ) {
+       public function openPage( $row ) {
                $out = "  <page>\n";
                $title = Title::makeTitle( $row->page_namespace, $row->page_title );
                $out .= '    ' . Xml::elementClean( 'title', array(), self::canonicalTitle( $title ) ) . "\n";
@@ -606,7 +605,9 @@ class XmlDumpWriter {
                        $page = WikiPage::factory( $title );
                        $redirect = $page->getRedirectTarget();
                        if ( $redirect instanceof Title && $redirect->isValidRedirectTarget() ) {
-                               $out .= '    ' . Xml::element( 'redirect', array( 'title' => self::canonicalTitle( $redirect ) ) ) . "\n";
+                               $out .= '    ';
+                               $out .= Xml::element( 'redirect', array( 'title' => self::canonicalTitle( $redirect ) ) );
+                               $out .= "\n";
                        }
                }
 
@@ -680,7 +681,10 @@ class XmlDumpWriter {
                                "" ) . "\n";
                }
 
-               if ( isset( $row->rev_sha1 ) && $row->rev_sha1 && !( $row->rev_deleted & Revision::DELETED_TEXT ) ) {
+               if ( isset( $row->rev_sha1 )
+                       && $row->rev_sha1
+                       && !( $row->rev_deleted & Revision::DELETED_TEXT )
+               ) {
                        $out .= "      " . Xml::element( 'sha1', null, strval( $row->rev_sha1 ) ) . "\n";
                } else {
                        $out .= "      <sha1/>\n";
@@ -813,7 +817,7 @@ class XmlDumpWriter {
        }
 
        /**
-        * @param $file File
+        * @param File $file
         * @param $dumpContents bool
         * @return string
         */
@@ -828,7 +832,7 @@ class XmlDumpWriter {
                        $be = $file->getRepo()->getBackend();
                        # Dump file as base64
                        # Uses only XML-safe characters, so does not need escaping
-                       # @TODO: too bad this loads the contents into memory (script might swap)
+                       # @todo Too bad this loads the contents into memory (script might swap)
                        $contents = '      <contents encoding="base64">' .
                                chunk_split( base64_encode(
                                        $be->getFileContents( array( 'src' => $file->getPath() ) ) ) ) .
@@ -956,7 +960,8 @@ class DumpOutput {
         * Use this for the last piece of a file written out
         * at specified checkpoints (e.g. every n hours).
         * @param $newname mixed File name. May be a string or an array with one element
-        * @param bool $open If true, a new file with the old filename will be opened again for writing (default: false)
+        * @param bool $open If true, a new file with the old filename will be opened
+        *   again for writing (default: false)
         */
        function closeAndRename( $newname, $open = false ) {
        }
index 0e95ef7..3727f16 100644 (file)
@@ -177,11 +177,12 @@ function wfAppendToArrayIfNotDefault( $key, $value, $default, &$changed ) {
  * XXX: will not darn your socks for you.
  *
  * @deprecated since 1.22; use array_replace()
- * @param $array1 Array
- * @param [$array2, [...]] Arrays
- * @return Array
+ *
+ * @param array $array1 Initial array to merge.
+ * @param array [$array2,...] Variable list of arrays to merge.
+ * @return array
  */
-function wfArrayMerge( $array1/* ... */ ) {
+function wfArrayMerge( $array1 /*...*/ ) {
        wfDeprecated( __FUNCTION__, '1.22' );
        $args = func_get_args();
        $args = array_reverse( $args, true );
@@ -207,8 +208,9 @@ function wfArrayMerge( $array1/* ... */ ) {
  *             array( 'x' ),
  *             array( 'y' )
  *     )
- * @param varargs
- * @return Array
+ *
+ * @param array [$array1,...]
+ * @return array
  */
 function wfMergeErrorArrays( /*...*/ ) {
        $args = func_get_args();
@@ -407,7 +409,7 @@ function wfArrayToCgi( $array1, $array2 = null, $prefix = '' ) {
  * arrays.  Of course, keys and values are urldecode()d.
  *
  * @param string $query query string
- * @return array Array version of input
+ * @return string[] Array version of input
  */
 function wfCgiToArray( $query ) {
        if ( isset( $query[0] ) && $query[0] == '?' ) {
@@ -452,8 +454,8 @@ function wfCgiToArray( $query ) {
  * Append a query string to an existing URL, which may or may not already
  * have query string parameters already. If so, they will be combined.
  *
- * @param $url String
- * @param $query Mixed: string or associative array
+ * @param string $url
+ * @param string|string[] $query String or associative array
  * @return string
  */
 function wfAppendQuery( $url, $query ) {
@@ -750,7 +752,7 @@ function wfUrlProtocolsWithoutProtRel() {
  * 3) Adds a "delimiter" element to the array, either '://', ':' or '//' (see (2)).
  *
  * @param string $url a URL to parse
- * @return Array: bits of the URL in an associative array, per PHP docs
+ * @return string[] Bits of the URL in an associative array, per PHP docs
  */
 function wfParseUrl( $url ) {
        global $wgUrlProtocols; // Allow all protocols defined in DefaultSettings/LocalSettings.php
@@ -1381,12 +1383,15 @@ function wfGetLangObj( $langcode = false ) {
  *
  * This function replaces all old wfMsg* functions.
  *
- * @param $key \string Message key.
- * Varargs: normal message parameters.
+ * @param string $key Message key
+ * @param mixed [$params,...] Normal message parameters
  * @return Message
+ *
  * @since 1.17
+ *
+ * @see Message::__construct
  */
-function wfMessage( $key /*...*/) {
+function wfMessage( $key /*...*/ ) {
        $params = func_get_args();
        array_shift( $params );
        if ( isset( $params[0] ) && is_array( $params[0] ) ) {
@@ -1399,9 +1404,13 @@ function wfMessage( $key /*...*/) {
  * This function accepts multiple message keys and returns a message instance
  * for the first message which is non-empty. If all messages are empty then an
  * instance of the first message key is returned.
- * @param varargs: message keys
+ *
+ * @param string|string[] [$keys,...] Message keys
  * @return Message
+ *
  * @since 1.18
+ *
+ * @see Message::newFallbackSequence
  */
 function wfMessageFallback( /*...*/ ) {
        $args = func_get_args();
@@ -1520,11 +1529,11 @@ function wfMsgForContentNoTrans( $key ) {
  * @deprecated since 1.18
  *
  * @param string $key key to get.
- * @param $args
- * @param $useDB Boolean
- * @param $forContent Mixed: Language code, or false for user lang, true for content lang.
- * @param $transform Boolean: Whether or not to transform the message.
- * @return String: the requested message.
+ * @param array $args
+ * @param bool $useDB
+ * @param string|bool $forContent Language code, or false for user lang, true for content lang.
+ * @param bool $transform Whether or not to transform the message.
+ * @return string The requested message.
  */
 function wfMsgReal( $key, $args, $useDB = true, $forContent = false, $transform = true ) {
        wfDeprecated( __METHOD__, '1.21' );
@@ -1541,11 +1550,11 @@ function wfMsgReal( $key, $args, $useDB = true, $forContent = false, $transform
  *
  * @deprecated since 1.18
  *
- * @param $key String
- * @param $useDB Bool
- * @param string $langCode Code of the language to get the message for, or
+ * @param string $key
+ * @param bool $useDB
+ * @param string|bool $langCode Code of the language to get the message for, or
  *                  behaves as a content language switch if it is a boolean.
- * @param $transform Boolean: whether to parse magic words, etc.
+ * @param bool $transform Whether to parse magic words, etc.
  * @return string
  */
 function wfMsgGetKey( $key, $useDB = true, $langCode = false, $transform = true ) {
@@ -1566,8 +1575,8 @@ function wfMsgGetKey( $key, $useDB = true, $langCode = false, $transform = true
 /**
  * Replace message parameter keys on the given formatted output.
  *
- * @param $message String
- * @param $args Array
+ * @param string $message
+ * @param array $args
  * @return string
  * @private
  */
@@ -1600,8 +1609,8 @@ function wfMsgReplaceArgs( $message, $args ) {
  *
  * @deprecated since 1.18
  *
- * @param $key String
- * @param string ... parameters
+ * @param string $key
+ * @param string [$args,...] Parameters
  * @return string
  */
 function wfMsgHtml( $key ) {
@@ -1621,8 +1630,8 @@ function wfMsgHtml( $key ) {
  *
  * @deprecated since 1.18
  *
- * @param $key String
- * @param string ... parameters
+ * @param string $key
+ * @param string [$args,...] Parameters
  * @return string
  */
 function wfMsgWikiHtml( $key ) {
@@ -1738,8 +1747,8 @@ function wfMsgExt( $key, $options ) {
  *
  * @deprecated since 1.18. Use Message::isDisabled().
  *
- * @param $key      String: the message key looked up
- * @return Boolean True if the message *doesn't* exist.
+ * @param string $key The message key looked up
+ * @return bool True if the message *doesn't* exist.
  */
 function wfEmptyMsg( $key ) {
        wfDeprecated( __METHOD__, '1.21' );
@@ -1961,9 +1970,9 @@ function wfFormatStackFrame( $frame ) {
 /**
  * @todo document
  *
- * @param $offset Int
- * @param $limit Int
- * @return String
+ * @param int $offset
+ * @param int $limit
+ * @return string
  */
 function wfShowingResults( $offset, $limit ) {
        return wfMessage( 'showingresults' )->numParams( $limit, $offset + 1 )->parse();
@@ -1972,12 +1981,12 @@ function wfShowingResults( $offset, $limit ) {
 /**
  * Generate (prev x| next x) (20|50|100...) type links for paging
  *
- * @param $offset String
- * @param $limit Integer
- * @param $link String
+ * @param string $offset
+ * @param int $limit
+ * @param string $link
  * @param string $query optional URL query parameter string
  * @param bool $atend optional param for specified if this is the last page
- * @return String
+ * @return string
  * @deprecated in 1.19; use Language::viewPrevNext() instead
  */
 function wfViewPrevNext( $offset, $limit, $link, $query = '', $atend = false ) {
@@ -2003,7 +2012,7 @@ function wfViewPrevNext( $offset, $limit, $link, $query = '', $atend = false ) {
  * @todo document
  * @todo FIXME: We may want to blacklist some broken browsers
  *
- * @param $force Bool
+ * @param bool $force
  * @return bool Whereas client accept gzip compression
  */
 function wfClientAcceptsGzip( $force = false ) {
@@ -2255,9 +2264,9 @@ function wfClearOutputBuffers() {
  * Converts an Accept-* header into an array mapping string values to quality
  * factors
  *
- * @param $accept String
+ * @param string $accept
  * @param string $def default
- * @return Array
+ * @return float[] Associative array of string => float pairs
  */
 function wfAcceptToPrefs( $accept, $def = '*/*' ) {
        # No arg means accept anything (per HTTP spec)
@@ -2290,8 +2299,8 @@ function wfAcceptToPrefs( $accept, $def = '*/*' ) {
  * Returns the matching MIME type (or wildcard) if a match, otherwise
  * NULL if no match.
  *
- * @param $type String
- * @param $avail Array
+ * @param string $type
+ * @param array $avail
  * @return string
  * @private
  */
@@ -2474,9 +2483,9 @@ function wfTimestamp( $outputtype = TS_UNIX, $ts = 0 ) {
  * Return a formatted timestamp, or null if input is null.
  * For dealing with nullable timestamp columns in the database.
  *
- * @param $outputtype Integer
- * @param $ts String
- * @return String
+ * @param int $outputtype
+ * @param string $ts
+ * @return string
  */
 function wfTimestampOrNull( $outputtype = TS_UNIX, $ts = null ) {
        if ( is_null( $ts ) ) {
@@ -2499,7 +2508,7 @@ function wfTimestampNow() {
 /**
  * Check if the operating system is Windows
  *
- * @return Bool: true if it's Windows, False otherwise.
+ * @return bool True if it's Windows, false otherwise.
  */
 function wfIsWindows() {
        static $isWindows = null;
@@ -2512,7 +2521,7 @@ function wfIsWindows() {
 /**
  * Check if we are running under HHVM
  *
- * @return Bool
+ * @return bool
  */
 function wfIsHHVM() {
        return defined( 'HHVM_VERSION' );
@@ -2521,8 +2530,8 @@ function wfIsHHVM() {
 /**
  * Swap two variables
  *
- * @param $x Mixed
- * @param $y Mixed
+ * @param mixed $x
+ * @param mixed $y
  */
 function swap( &$x, &$y ) {
        $z = $x;
@@ -2539,7 +2548,7 @@ function swap( &$x, &$y ) {
  * NOTE: When possible, use instead the tmpfile() function to create
  * temporary files to avoid race conditions on file creation, etc.
  *
- * @return String
+ * @return string
  */
 function wfTempDir() {
        global $wgTmpDirectory;
@@ -2562,7 +2571,7 @@ function wfTempDir() {
  * Make directory, and make all parent directories if they don't exist
  *
  * @param string $dir full path to directory to create
- * @param $mode Integer: chmod value to use, default is $wgDirectoryMode
+ * @param int $mode Chmod value to use, default is $wgDirectoryMode
  * @param string $caller optional caller param for debugging.
  * @throws MWException
  * @return bool
@@ -2629,10 +2638,10 @@ function wfRecursiveRemoveDir( $dir ) {
 }
 
 /**
- * @param $nr Mixed: the number to format
- * @param $acc Integer: the number of digits after the decimal point, default 2
- * @param $round Boolean: whether or not to round the value, default true
- * @return float
+ * @param number $nr The number to format
+ * @param int $acc The number of digits after the decimal point, default 2
+ * @param bool $round Whether or not to round the value, default true
+ * @return string
  */
 function wfPercent( $nr, $acc = 2, $round = true ) {
        $ret = sprintf( "%.${acc}f", $nr );
@@ -2659,8 +2668,8 @@ function wfPercent( $nr, $acc = 2, $round = true ) {
  *
  * I frickin' hate PHP... :P
  *
- * @param $setting String
- * @return Bool
+ * @param string $setting
+ * @return bool
  */
 function wfIniGetBool( $setting ) {
        $val = strtolower( ini_get( $setting ) );
@@ -2679,10 +2688,10 @@ function wfIniGetBool( $setting ) {
  * Also fixes the locale problems on Linux in PHP 5.2.6+ (bug backported to
  * earlier distro releases of PHP)
  *
- * @param varargs
- * @return String
+ * @param string [$args,...]
+ * @return string
  */
-function wfEscapeShellArg() {
+function wfEscapeShellArg( /*...*/ ) {
        wfInitShellLocale();
 
        $args = func_get_args();
@@ -2739,6 +2748,7 @@ function wfEscapeShellArg() {
 
 /**
  * Check if wfShellExec() is effectively disabled via php.ini config
+ *
  * @return bool|string False or one of (safemode,disabled)
  * @since 1.22
  */
@@ -2765,6 +2775,7 @@ function wfShellExecDisabled() {
 /**
  * Execute a shell command, with time and memory limits mirrored from the PHP
  * configuration if supported.
+ *
  * @param string $cmd Command line, properly escaped for shell.
  * @param &$retval null|Mixed optional, will receive the program's exit code.
  *                 (non-zero is usually failure). If there is an error from
@@ -3027,6 +3038,7 @@ function wfInitShellLocale() {
 
 /**
  * Alias to wfShellWikiCmd()
+ *
  * @see wfShellWikiCmd()
  */
 function wfShellMaintenanceCmd( $script, array $parameters = array(), array $options = array() ) {
@@ -3037,12 +3049,13 @@ function wfShellMaintenanceCmd( $script, array $parameters = array(), array $opt
  * Generate a shell-escaped command line string to run a MediaWiki cli script.
  * Note that $parameters should be a flat array and an option with an argument
  * should consist of two consecutive items in the array (do not use "--option value").
+ *
  * @param string $script MediaWiki cli script path
  * @param array $parameters Arguments and options to the script
  * @param array $options Associative array of options:
  *             'php': The path to the php executable
  *             'wrapper': Path to a PHP wrapper to handle the maintenance script
- * @return Array
+ * @return string
  */
 function wfShellWikiCmd( $script, array $parameters = array(), array $options = array() ) {
        global $wgPhpCli;
@@ -3062,11 +3075,11 @@ function wfShellWikiCmd( $script, array $parameters = array(), array $options =
  * wfMerge attempts to merge differences between three texts.
  * Returns true for a clean merge and false for failure or a conflict.
  *
- * @param $old String
- * @param $mine String
- * @param $yours String
- * @param $result String
- * @return Bool
+ * @param string $old
+ * @param string $mine
+ * @param string $yours
+ * @param string $result
+ * @return bool
  */
 function wfMerge( $old, $mine, $yours, &$result ) {
        global $wgDiff3;
@@ -3144,7 +3157,7 @@ function wfMerge( $old, $mine, $yours, &$result ) {
  * @param string $before the text before the changes.
  * @param string $after the text after the changes.
  * @param string $params command-line options for the diff command.
- * @return String: unified diff of $before and $after
+ * @return string Unified diff of $before and $after
  */
 function wfDiff( $before, $after, $params = '-u' ) {
        if ( $before == $after ) {
@@ -3221,7 +3234,7 @@ function wfDiff( $before, $after, $params = '-u' ) {
  *
  * @see perldoc -f use
  *
- * @param $req_ver Mixed: the version to check, can be a string, an integer, or
+ * @param string|number $req_ver The version to check, can be a string, an integer, or
  *                 a float
  * @throws MWException
  */
@@ -3251,7 +3264,7 @@ function wfUsePHP( $req_ver ) {
  *
  * @see perldoc -f use
  *
- * @param $req_ver Mixed: the version to check, can be a string, an integer, or
+ * @param string|number $req_ver The version to check, can be a string, an integer, or
  *                 a float
  * @throws MWException
  */
@@ -3271,9 +3284,9 @@ function wfUseMW( $req_ver ) {
  * PHP's basename() only considers '\' a pathchar on Windows and Netware.
  * We'll consider it so always, as we don't want '\s' in our Unix paths either.
  *
- * @param $path String
+ * @param string $path
  * @param string $suffix to remove if present
- * @return String
+ * @return string
  */
 function wfBaseName( $path, $suffix = '' ) {
        if ( $suffix == '' ) {
@@ -3297,7 +3310,7 @@ function wfBaseName( $path, $suffix = '' ) {
  *
  * @param string $path absolute destination path including target filename
  * @param string $from Absolute source path, directory only
- * @return String
+ * @return string
  */
 function wfRelativePath( $path, $from ) {
        // Normalize mixed input on Windows...
@@ -3441,25 +3454,9 @@ function wfBaseConvert( $input, $sourceBase, $destBase, $pad = 1,
        return str_pad( $result, $pad, '0', STR_PAD_LEFT );
 }
 
-/**
- * @return bool
- */
-function wfHttpOnlySafe() {
-       global $wgHttpOnlyBlacklist;
-
-       if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
-               foreach ( $wgHttpOnlyBlacklist as $regex ) {
-                       if ( preg_match( $regex, $_SERVER['HTTP_USER_AGENT'] ) ) {
-                               return false;
-                       }
-               }
-       }
-
-       return true;
-}
-
 /**
  * Check if there is sufficient entropy in php's built-in session generation
+ *
  * @return bool true = there is sufficient entropy
  */
 function wfCheckEntropy() {
@@ -3497,6 +3494,7 @@ function wfFixSessionID() {
 
 /**
  * Reset the session_id
+ *
  * @since 1.22
  */
 function wfResetSessionID() {
@@ -3518,7 +3516,7 @@ function wfResetSessionID() {
 /**
  * Initialise php session
  *
- * @param $sessionId Bool
+ * @param bool $sessionId
  */
 function wfSetupSession( $sessionId = false ) {
        global $wgSessionsInMemcached, $wgSessionsInObjectCache, $wgCookiePath, $wgCookieDomain,
@@ -3530,16 +3528,8 @@ function wfSetupSession( $sessionId = false ) {
                # hasn't already been set to the desired value (that causes errors)
                ini_set( 'session.save_handler', $wgSessionHandler );
        }
-       $httpOnlySafe = wfHttpOnlySafe() && $wgCookieHttpOnly;
-       wfDebugLog( 'cookie',
-               'session_set_cookie_params: "' . implode( '", "',
-                       array(
-                               0,
-                               $wgCookiePath,
-                               $wgCookieDomain,
-                               $wgCookieSecure,
-                               $httpOnlySafe ) ) . '"' );
-       session_set_cookie_params( 0, $wgCookiePath, $wgCookieDomain, $wgCookieSecure, $httpOnlySafe );
+       session_set_cookie_params(
+               0, $wgCookiePath, $wgCookieDomain, $wgCookieSecure, $wgCookieHttpOnly );
        session_cache_limiter( 'private, must-revalidate' );
        if ( $sessionId ) {
                session_id( $sessionId );
@@ -3554,8 +3544,8 @@ function wfSetupSession( $sessionId = false ) {
 /**
  * Get an object from the precompiled serialized directory
  *
- * @param $name String
- * @return Mixed: the variable on success, false on failure
+ * @param string $name
+ * @return mixed The variable on success, false on failure
  */
 function wfGetPrecompiledData( $name ) {
        global $IP;
@@ -3573,10 +3563,10 @@ function wfGetPrecompiledData( $name ) {
 /**
  * Get a cache key
  *
- * @param varargs
- * @return String
+ * @param string [$args,...]
+ * @return string
  */
-function wfMemcKey( /*... */ ) {
+function wfMemcKey( /*...*/ ) {
        global $wgCachePrefix;
        $prefix = $wgCachePrefix === false ? wfWikiID() : $wgCachePrefix;
        $args = func_get_args();
@@ -3588,12 +3578,12 @@ function wfMemcKey( /*... */ ) {
 /**
  * Get a cache key for a foreign DB
  *
- * @param $db String
- * @param $prefix String
- * @param varargs String
- * @return String
+ * @param string $db
+ * @param string $prefix
+ * @param string [$args,...]
+ * @return string
  */
-function wfForeignMemcKey( $db, $prefix /*, ... */ ) {
+function wfForeignMemcKey( $db, $prefix /*...*/ ) {
        $args = array_slice( func_get_args(), 2 );
        if ( $prefix ) {
                $key = "$db-$prefix:" . implode( ':', $args );
@@ -3607,7 +3597,7 @@ function wfForeignMemcKey( $db, $prefix /*, ... */ ) {
  * Get an ASCII string identifying this wiki
  * This is used as a prefix in memcached keys
  *
- * @return String
+ * @return string
  */
 function wfWikiID() {
        global $wgDBprefix, $wgDBname;
@@ -3621,7 +3611,7 @@ function wfWikiID() {
 /**
  * Split a wiki ID into DB name and table prefix
  *
- * @param $wiki String
+ * @param string $wiki
  *
  * @return array
  */
@@ -3636,15 +3626,15 @@ function wfSplitWikiID( $wiki ) {
 /**
  * Get a Database object.
  *
- * @param $db Integer: index of the connection to get. May be DB_MASTER for the
+ * @param int $db Index of the connection to get. May be DB_MASTER for the
  *            master (for write queries), DB_SLAVE for potentially lagged read
  *            queries, or an integer >= 0 for a particular server.
  *
- * @param $groups Mixed: query groups. An array of group names that this query
+ * @param string|string[] $groups Query groups. An array of group names that this query
  *                belongs to. May contain a single string if the query is only
  *                in one group.
  *
- * @param string $wiki the wiki ID, or false for the current wiki
+ * @param string|bool $wiki The wiki ID, or false for the current wiki
  *
  * Note: multiple calls to wfGetDB(DB_SLAVE) during the course of one request
  * will always return the same object, unless the underlying connection or load
@@ -3662,7 +3652,7 @@ function &wfGetDB( $db, $groups = array(), $wiki = false ) {
 /**
  * Get a load balancer object.
  *
- * @param string $wiki wiki ID, or false for the current wiki
+ * @param string|bool $wiki wiki ID, or false for the current wiki
  * @return LoadBalancer
  */
 function wfGetLB( $wiki = false ) {
@@ -3706,7 +3696,7 @@ function wfFindFile( $title, $options = array() ) {
  * Get an object referring to a locally registered file.
  * Returns a valid placeholder object if the file does not exist.
  *
- * @param $title Title|String
+ * @param Title|string $title
  * @return LocalFile|null A File, or null if passed an invalid Title
  */
 function wfLocalFile( $title ) {
@@ -3716,7 +3706,7 @@ function wfLocalFile( $title ) {
 /**
  * Should low-performance queries be disabled?
  *
- * @return Boolean
+ * @return bool
  * @codeCoverageIgnore
  */
 function wfQueriesMustScale() {
@@ -3733,7 +3723,7 @@ function wfQueriesMustScale() {
  * except for 'index' and 'load' which use $wgScript/$wgLoadScript
  *
  * @param string $script script filename, sans extension
- * @return String
+ * @return string
  */
 function wfScript( $script = 'index' ) {
        global $wgScriptPath, $wgScriptExtension, $wgScript, $wgLoadScript;
@@ -3773,8 +3763,8 @@ function wfGetScriptUrl() {
  * Convenience function converts boolean values into "true"
  * or "false" (string) values
  *
- * @param $value Boolean
- * @return String
+ * @param bool $value
+ * @return string
  */
 function wfBoolToStr( $value ) {
        return $value ? 'true' : 'false';
@@ -3797,7 +3787,7 @@ function wfGetNull() {
  * a no-op if there are no slaves.
  *
  * @param int|bool $maxLag (deprecated)
- * @param mixed $wiki Wiki identifier accepted by wfGetLB
+ * @param string|bool $wiki Wiki identifier accepted by wfGetLB
  * @param string|bool $cluster Cluster name accepted by LBFactory. Default: false.
  */
 function wfWaitForSlaves( $maxLag = false, $wiki = false, $cluster = false ) {
@@ -3821,14 +3811,15 @@ function wfWaitForSlaves( $maxLag = false, $wiki = false, $cluster = false ) {
 }
 
 /**
- * Count down from $n to zero on the terminal, with a one-second pause
+ * Count down from $seconds to zero on the terminal, with a one-second pause
  * between showing each number. For use in command-line scripts.
+ *
  * @codeCoverageIgnore
- * @param $n int
+ * @param int $seconds
  */
-function wfCountDown( $n ) {
-       for ( $i = $n; $i >= 0; $i-- ) {
-               if ( $i != $n ) {
+function wfCountDown( $seconds ) {
+       for ( $i = $seconds; $i >= 0; $i-- ) {
+               if ( $i != $seconds ) {
                        echo str_repeat( "\x08", strlen( $i + 1 ) );
                }
                echo $i;
@@ -3845,8 +3836,8 @@ function wfCountDown( $n ) {
  * Additional characters can be defined in $wgIllegalFileChars (see bug 20489)
  * By default, $wgIllegalFileChars = ':'
  *
- * @param $name Mixed: filename to process
- * @return String
+ * @param string $name Filename to process
+ * @return string
  */
 function wfStripIllegalFilenameChars( $name ) {
        global $wgIllegalFileChars;
@@ -3863,7 +3854,7 @@ function wfStripIllegalFilenameChars( $name ) {
 /**
  * Set PHP's memory limit to the larger of php.ini or $wgMemoryLimit;
  *
- * @return Integer value memory was set to.
+ * @return int Value the memory limit was set to.
  */
 function wfMemoryLimit() {
        global $wgMemoryLimit;
@@ -3890,8 +3881,8 @@ function wfMemoryLimit() {
 /**
  * Converts shorthand byte notation to integer form
  *
- * @param $string String
- * @return Integer
+ * @param string $string
+ * @return int
  */
 function wfShorthandToInteger( $string = '' ) {
        $string = trim( $string );
@@ -3922,7 +3913,7 @@ function wfShorthandToInteger( $string = '' ) {
  * See unit test for examples.
  *
  * @param string $code The language code.
- * @return String: The language code which complying with BCP 47 standards.
+ * @return string The language code which complying with BCP 47 standards.
  */
 function wfBCP47( $code ) {
        $codeSegment = explode( '-', $code );
@@ -4003,7 +3994,7 @@ function wfGetLangConverterCacheStorage() {
  * @param array $args parameters passed to hook functions
  * @param string|null $deprecatedVersion optionally mark hook as deprecated with version number
  *
- * @return Boolean True if no handler aborted the hook
+ * @return bool True if no handler aborted the hook
  */
 function wfRunHooks( $event, array $args = array(), $deprecatedVersion = null ) {
        return Hooks::run( $event, $args, $deprecatedVersion );
@@ -4013,8 +4004,8 @@ function wfRunHooks( $event, array $args = array(), $deprecatedVersion = null )
  * Wrapper around php's unpack.
  *
  * @param string $format The format string (See php's docs)
- * @param $data: A binary string of binary data
- * @param $length integer or false: The minimum length of $data. This is to
+ * @param string $data A binary string of binary data
+ * @param int|bool $length The minimum length of $data or false. This is to
  *     prevent reading beyond the end of $data. false to disable the check.
  *
  * Also be careful when using this function to read unsigned 32 bit integer
@@ -4055,7 +4046,7 @@ function wfUnpack( $format, $data, $length = false ) {
  *      i.e. articles where the image may occur inline.
  *
  * @param string $name the image name to check
- * @param $contextTitle Title|bool the page on which the image occurs, if known
+ * @param Title|bool $contextTitle The page on which the image occurs, if known
  * @param string $blacklist wikitext of a file blacklist
  * @return bool
  */
@@ -4157,7 +4148,7 @@ function wfGetIP() {
  * Useful to tell if X-Forwarded-For data is possibly bogus.
  * Squid cache servers for the site are whitelisted.
  *
- * @param $ip String
+ * @param string $ip
  * @return bool
  */
 function wfIsTrustedProxy( $ip ) {
@@ -4168,7 +4159,8 @@ function wfIsTrustedProxy( $ip ) {
 
 /**
  * Checks if an IP matches a proxy we've configured.
- * @param $ip String
+ *
+ * @param string $ip
  * @return bool
  * @since 1.23 Supports CIDR ranges in $wgSquidServersNoPurge
  */
index 23bfd61..033926a 100644 (file)
@@ -25,6 +25,8 @@
  * for primarily page content: links, embedded images, table of contents. Links
  * are also used in the skin.
  *
+ * @todo: turn this into a legacy interface for HtmlPageLinkRenderer and similar services.
+ *
  * @ingroup Skins
  */
 class Linker {
index 9cba0cc..8542904 100644 (file)
@@ -257,10 +257,15 @@ class OutputPage extends ContextSource {
        private $mTarget = null;
 
        /**
-        * @var bool: Whether output should contain table of contents
+        * @var bool: Whether parser output should contain table of contents
         */
        private $mEnableTOC = true;
 
+       /**
+        * @var bool: Whether parser output should contain section edit links
+        */
+       private $mEnableSectionEditLinks = true;
+
        /**
         * Constructor for OutputPage. This should not be called directly.
         * Instead a new RequestContext should be created and it will implicitly create
@@ -1613,6 +1618,11 @@ class OutputPage extends ContextSource {
        function addParserOutput( &$parserOutput ) {
                $this->addParserOutputNoText( $parserOutput );
                $parserOutput->setTOCEnabled( $this->mEnableTOC );
+
+               // Touch section edit links only if not previously disabled
+               if ( $parserOutput->getEditSectionTokens() ) {
+                       $parserOutput->setEditSectionTokens( $this->mEnableSectionEditLinks );
+               }
                $text = $parserOutput->getText();
                wfRunHooks( 'OutputPageBeforeHTML', array( &$this, &$text ) );
                $this->addHTML( $text );
@@ -3691,4 +3701,21 @@ $templates
        public function isTOCEnabled() {
                return $this->mEnableTOC;
        }
+
+       /**
+        * Enables/disables section edit links, doesn't override __NOEDITSECTION__
+        * @param bool $flag
+        * @since 1.23
+        */
+       public function enableSectionEditLinks( $flag = true ) {
+               $this->mEnableSectionEditLinks = $flag;
+       }
+
+       /**
+        * @return bool
+        * @since 1.23
+        */
+       public function sectionEditLinksEnabled() {
+               return $this->mEnableSectionEditLinks;
+       }
 }
index c85a006..995deeb 100644 (file)
@@ -27,6 +27,8 @@
  * Optionally may contain an interwiki designation or namespace.
  * @note This class can fetch various kinds of data from the database;
  *       however, it does so inefficiently.
+ * @note Consider using a TitleValue object instead. TitleValue is more lightweight
+ *       and does not rely on global state or the database.
  *
  * @internal documentation reviewed 15 Mar 2010
  */
@@ -85,8 +87,55 @@ class Title {
        var $mNotificationTimestamp = array(); // /< Associative array of user ID -> timestamp/false
        var $mHasSubpage;                 // /< Whether a page has any subpages
        private $mPageLanguage = false;   // /< The (string) language code of the page's language and content code.
+       private $mTitleValue = null;      // /< A corresponding TitleValue object
        // @}
 
+       /**
+        * B/C kludge: provide a TitleParser for use by Title.
+        * Ideally, Title would have no methods that need this.
+        * Avoid usage of this singleton by using TitleValue
+        * and the associated services when possible.
+        *
+        * @return TitleParser
+        */
+       private static function getTitleParser() {
+               global $wgContLang, $wgLocalInterwikis;
+
+               static $titleCodec = null;
+               static $titleCodecFingerprint = null;
+
+               // $wgContLang and $wgLocalInterwikis may change (especially while testing),
+               // make sure we are using the right one. To detect changes over the course
+               // of a request, we remember a fingerprint of the config used to create the
+               // codec singleton, and re-create it if the fingerprint doesn't match.
+               $fingerprint = spl_object_hash( $wgContLang ) . '|' . join( '+', $wgLocalInterwikis );
+
+               if ( $fingerprint !== $titleCodecFingerprint ) {
+                       $titleCodec = null;
+               }
+
+               if ( !$titleCodec ) {
+                       $titleCodec = new MediaWikiTitleCodec( $wgContLang, GenderCache::singleton(), $wgLocalInterwikis );
+                       $titleCodecFingerprint = $fingerprint;
+               }
+
+               return $titleCodec;
+       }
+
+       /**
+        * B/C kludge: provide a TitleParser for use by Title.
+        * Ideally, Title would have no methods that need this.
+        * Avoid usage of this singleton by using TitleValue
+        * and the associated services when possible.
+        *
+        * @return TitleFormatter
+        */
+       private static function getTitleFormatter() {
+               //NOTE: we know that getTitleParser() returns a MediaWikiTitleCodec,
+               //      which implements TitleFormatter.
+               return self::getTitleParser();
+       }
+
        /**
         * Constructor
         */
@@ -110,6 +159,20 @@ class Title {
                }
        }
 
+       /**
+        * Create a new Title from a TitleValue
+        *
+        * @param TitleValue $titleValue, assumed to be safe.
+        *
+        * @return Title
+        */
+       public static function newFromTitleValue( TitleValue $titleValue ) {
+               return self::makeTitle(
+                       $titleValue->getNamespace(),
+                       $titleValue->getText(),
+                       $titleValue->getFragment() );
+       }
+
        /**
         * Create a new Title from text, such as what one would find in a link. De-
         * codes any HTML entities in the text.
@@ -147,7 +210,7 @@ class Title {
 
                $t = new Title();
                $t->mDbkeyform = str_replace( ' ', '_', $filteredText );
-               $t->mDefaultNamespace = $defaultNamespace;
+               $t->mDefaultNamespace = intval( $defaultNamespace );
 
                if ( $t->secureAndSplit() ) {
                        if ( $defaultNamespace == NS_MAIN ) {
@@ -473,6 +536,8 @@ class Title {
         * Note that this doesn't pick up many things that could be wrong with titles, but that
         * replacing this regex with something valid will make many titles valid.
         *
+        * @todo: move this into MediaWikiTitleCodec
+        *
         * @return String regex string
         */
        static function getTitleInvalidRegex() {
@@ -741,6 +806,31 @@ class Title {
                return Interwiki::fetch( $this->mInterwiki )->getWikiID();
        }
 
+       /**
+        * Get a TitleValue object representing this Title.
+        *
+        * @note: Not all valid Titles have a corresponding valid TitleValue
+        * (e.g. TitleValues cannot represent page-local links that have a
+        * fragment but no title text).
+        *
+        * @return TitleValue|null
+        */
+       public function getTitleValue() {
+               if ( $this->mTitleValue === null ) {
+                       try {
+                               $this->mTitleValue = new TitleValue(
+                                       $this->getNamespace(),
+                                       $this->getDBkey(),
+                                       $this->getFragment() );
+                       } catch ( InvalidArgumentException $ex ) {
+                               wfDebug( __METHOD__ . ': Can\'t create a TitleValue for [[' .
+                                       $this->getPrefixedText() . ']]: ' . $ex->getMessage() . "\n" );
+                       }
+               }
+
+               return $this->mTitleValue;
+       }
+
        /**
         * Get the text form (spaces not underscores) of the main part
         *
@@ -830,8 +920,6 @@ class Title {
         * @return String: Namespace text
         */
        public function getNsText() {
-               global $wgContLang;
-
                if ( $this->isExternal() ) {
                        // This probably shouldn't even happen. ohh man, oh yuck.
                        // But for interwiki transclusion it sometimes does.
@@ -844,13 +932,13 @@ class Title {
                        }
                }
 
-               if ( $wgContLang->needsGenderDistinction() &&
-                               MWNamespace::hasGenderDistinction( $this->mNamespace ) ) {
-                       $gender = GenderCache::singleton()->getGenderOf( $this->getText(), __METHOD__ );
-                       return $wgContLang->getGenderNsText( $this->mNamespace, $gender );
+               try {
+                       $formatter = $this->getTitleFormatter();
+                       return $formatter->getNamespaceName( $this->mNamespace, $this->mDbkeyform );
+               } catch ( InvalidArgumentException $ex )  {
+                       wfDebug( __METHOD__ . ': ' . $ex->getMessage() . "\n" );
+                       return false;
                }
-
-               return $wgContLang->getNsText( $this->mNamespace );
        }
 
        /**
@@ -3200,8 +3288,6 @@ class Title {
         * @return Bool true on success
         */
        private function secureAndSplit() {
-               global $wgContLang, $wgLocalInterwikis;
-
                # Initialisation
                $this->mInterwiki = '';
                $this->mFragment = '';
@@ -3209,179 +3295,25 @@ class Title {
 
                $dbkey = $this->mDbkeyform;
 
-               # Strip Unicode bidi override characters.
-               # Sometimes they slip into cut-n-pasted page titles, where the
-               # override chars get included in list displays.
-               $dbkey = preg_replace( '/\xE2\x80[\x8E\x8F\xAA-\xAE]/S', '', $dbkey );
-
-               # Clean up whitespace
-               # Note: use of the /u option on preg_replace here will cause
-               # input with invalid UTF-8 sequences to be nullified out in PHP 5.2.x,
-               # conveniently disabling them.
-               $dbkey = preg_replace( '/[ _\xA0\x{1680}\x{180E}\x{2000}-\x{200A}\x{2028}\x{2029}\x{202F}\x{205F}\x{3000}]+/u', '_', $dbkey );
-               $dbkey = trim( $dbkey, '_' );
-
-               if ( strpos( $dbkey, UTF8_REPLACEMENT ) !== false ) {
-                       # Contained illegal UTF-8 sequences or forbidden Unicode chars.
-                       return false;
-               }
-
-               $this->mDbkeyform = $dbkey;
-
-               # Initial colon indicates main namespace rather than specified default
-               # but should not create invalid {ns,title} pairs such as {0,Project:Foo}
-               if ( $dbkey !== '' && ':' == $dbkey[0] ) {
-                       $this->mNamespace = NS_MAIN;
-                       $dbkey = substr( $dbkey, 1 ); # remove the colon but continue processing
-                       $dbkey = trim( $dbkey, '_' ); # remove any subsequent whitespace
-               }
-
-               if ( $dbkey == '' ) {
-                       return false;
-               }
-
-               # Namespace or interwiki prefix
-               $firstPass = true;
-               $prefixRegexp = "/^(.+?)_*:_*(.*)$/S";
-               do {
-                       $m = array();
-                       if ( preg_match( $prefixRegexp, $dbkey, $m ) ) {
-                               $p = $m[1];
-                               if ( ( $ns = $wgContLang->getNsIndex( $p ) ) !== false ) {
-                                       # Ordinary namespace
-                                       $dbkey = $m[2];
-                                       $this->mNamespace = $ns;
-                                       # For Talk:X pages, check if X has a "namespace" prefix
-                                       if ( $ns == NS_TALK && preg_match( $prefixRegexp, $dbkey, $x ) ) {
-                                               if ( $wgContLang->getNsIndex( $x[1] ) ) {
-                                                       # Disallow Talk:File:x type titles...
-                                                       return false;
-                                               } elseif ( Interwiki::isValidInterwiki( $x[1] ) ) {
-                                                       # Disallow Talk:Interwiki:x type titles...
-                                                       return false;
-                                               }
-                                       }
-                               } elseif ( Interwiki::isValidInterwiki( $p ) ) {
-                                       if ( !$firstPass ) {
-                                               # Can't make a local interwiki link to an interwiki link.
-                                               # That's just crazy!
-                                               return false;
-                                       }
-
-                                       # Interwiki link
-                                       $dbkey = $m[2];
-                                       $this->mInterwiki = $wgContLang->lc( $p );
-
-                                       # Redundant interwiki prefix to the local wiki
-                                       foreach ( $wgLocalInterwikis as $localIW ) {
-                                               if ( 0 == strcasecmp( $this->mInterwiki, $localIW ) ) {
-                                                       if ( $dbkey == '' ) {
-                                                               # Can't have an empty self-link
-                                                               return false;
-                                                       }
-                                                       $this->mInterwiki = '';
-                                                       $firstPass = false;
-                                                       # Do another namespace split...
-                                                       continue 2;
-                                               }
-                                       }
-
-                                       # If there's an initial colon after the interwiki, that also
-                                       # resets the default namespace
-                                       if ( $dbkey !== '' && $dbkey[0] == ':' ) {
-                                               $this->mNamespace = NS_MAIN;
-                                               $dbkey = substr( $dbkey, 1 );
-                                       }
-                               }
-                               # If there's no recognized interwiki or namespace,
-                               # then let the colon expression be part of the title.
-                       }
-                       break;
-               } while ( true );
-
-               $fragment = strstr( $dbkey, '#' );
-               if ( false !== $fragment ) {
-                       $this->setFragment( $fragment );
-                       $dbkey = substr( $dbkey, 0, strlen( $dbkey ) - strlen( $fragment ) );
-                       # remove whitespace again: prevents "Foo_bar_#"
-                       # becoming "Foo_bar_"
-                       $dbkey = preg_replace( '/_*$/', '', $dbkey );
-               }
-
-               # Reject illegal characters.
-               $rxTc = self::getTitleInvalidRegex();
-               if ( preg_match( $rxTc, $dbkey ) ) {
-                       return false;
-               }
-
-               # Pages with "/./" or "/../" appearing in the URLs will often be un-
-               # reachable due to the way web browsers deal with 'relative' URLs.
-               # Also, they conflict with subpage syntax.  Forbid them explicitly.
-               if (
-                       strpos( $dbkey, '.' ) !== false &&
-                       (
-                               $dbkey === '.' || $dbkey === '..' ||
-                               strpos( $dbkey, './' ) === 0 ||
-                               strpos( $dbkey, '../' ) === 0 ||
-                               strpos( $dbkey, '/./' ) !== false ||
-                               strpos( $dbkey, '/../' ) !== false ||
-                               substr( $dbkey, -2 ) == '/.' ||
-                               substr( $dbkey, -3 ) == '/..'
-                       )
-               ) {
-                       return false;
-               }
-
-               # Magic tilde sequences? Nu-uh!
-               if ( strpos( $dbkey, '~~~' ) !== false ) {
-                       return false;
-               }
-
-               # Limit the size of titles to 255 bytes. This is typically the size of the
-               # underlying database field. We make an exception for special pages, which
-               # don't need to be stored in the database, and may edge over 255 bytes due
-               # to subpage syntax for long titles, e.g. [[Special:Block/Long name]]
-               if (
-                       ( $this->mNamespace != NS_SPECIAL && strlen( $dbkey ) > 255 )
-                       || strlen( $dbkey ) > 512
-               ) {
-                       return false;
-               }
-
-               # Normally, all wiki links are forced to have an initial capital letter so [[foo]]
-               # and [[Foo]] point to the same place.  Don't force it for interwikis, since the
-               # other site might be case-sensitive.
-               $this->mUserCaseDBKey = $dbkey;
-               if ( !$this->isExternal() ) {
-                       $dbkey = self::capitalize( $dbkey, $this->mNamespace );
-               }
-
-               # Can't make a link to a namespace alone... "empty" local links can only be
-               # self-links with a fragment identifier.
-               if ( $dbkey == '' && !$this->isExternal() && $this->mNamespace != NS_MAIN ) {
-                       return false;
-               }
-
-               // Allow IPv6 usernames to start with '::' by canonicalizing IPv6 titles.
-               // IP names are not allowed for accounts, and can only be referring to
-               // edits from the IP. Given '::' abbreviations and caps/lowercaps,
-               // there are numerous ways to present the same IP. Having sp:contribs scan
-               // them all is silly and having some show the edits and others not is
-               // inconsistent. Same for talk/userpages. Keep them normalized instead.
-               if ( $this->mNamespace == NS_USER || $this->mNamespace == NS_USER_TALK ) {
-                       $dbkey = IP::sanitizeIP( $dbkey );
-               }
-
-               // Any remaining initial :s are illegal.
-               if ( $dbkey !== '' && ':' == $dbkey[0] ) {
+               try {
+                       // @note: splitTitleString() is a temporary hack to allow MediaWikiTitleCodec to share
+                       //        the parsing code with Title, while avoiding massive refactoring.
+                       // @todo: get rid of secureAndSplit, refactor parsing code.
+                       $parser = $this->getTitleParser();
+                       $parts = $parser->splitTitleString( $dbkey, $this->getDefaultNamespace() );
+               } catch ( MalformedTitleException $ex ) {
                        return false;
                }
 
                # Fill fields
-               $this->mDbkeyform = $dbkey;
-               $this->mUrlform = wfUrlencode( $dbkey );
-
-               $this->mTextform = str_replace( '_', ' ', $dbkey );
+               $this->setFragment( '#' . $parts['fragment'] );
+               $this->mInterwiki = $parts['interwiki'];
+               $this->mNamespace = $parts['namespace'];
+               $this->mUserCaseDBKey = $parts['user_case_dbkey'];
+
+               $this->mDbkeyform = $parts['dbkey'];
+               $this->mUrlform = wfUrlencode( $this->mDbkeyform );
+               $this->mTextform = str_replace( '_', ' ', $this->mDbkeyform );
 
                # We already know that some pages won't be in the database!
                if ( $this->isExternal() || $this->mNamespace == NS_SPECIAL ) {
index ab7524c..a3dadd0 100644 (file)
@@ -88,12 +88,6 @@ class WebResponse {
                        $expire = time() + $wgCookieExpiration;
                }
 
-               // Don't mark the cookie as httpOnly if the requesting user-agent is
-               // known to have trouble with httpOnly cookies.
-               if ( !wfHttpOnlySafe() ) {
-                       $options['httpOnly'] = false;
-               }
-
                $func = $options['raw'] ? 'setrawcookie' : 'setcookie';
 
                if ( wfRunHooks( 'WebResponseSetCookie', array( &$name, &$value, &$expire, $options ) ) ) {
index eb79134..766b3bf 100644 (file)
@@ -1,10 +1,13 @@
 <?php
 /**
- * This does the initial setup for a web request.
+ * This does the initial set up for a web request.
  * It does some security checks, starts the profiler and loads the
  * configuration, and optionally loads Setup.php depending on whether
  * MW_NO_SETUP is defined.
  *
+ * Setup.php (if loaded) then sets up GlobalFunctions, the AutoLoader,
+ * and the configuration globals (though not $wgTitle).
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
index 4bf8fd3..6cf718c 100644 (file)
@@ -655,7 +655,10 @@ class MediaWiki {
                        $info['host'],
                        isset( $info['port'] ) ? $info['port'] : 80,
                        $errno,
-                       $errstr
+                       $errstr,
+                       // If it takes more than 100ms to connect to ourselves there
+                       // is a problem elsewhere.
+                       0.1
                );
                wfRestoreWarnings();
                if ( !$sock ) {
index b4aa303..af74f47 100644 (file)
@@ -104,9 +104,10 @@ class WikiPage implements Page, IDBAccessObject {
        /**
         * Create a WikiPage object of the appropriate class for the given title.
         *
-        * @param $title Title
+        * @param Title $title
+        *
         * @throws MWException
-        * @return WikiPage object of the appropriate type
+        * @return WikiPage Object of the appropriate type
         */
        public static function factory( Title $title ) {
                $ns = $title->getNamespace();
@@ -1468,12 +1469,13 @@ class WikiPage implements Page, IDBAccessObject {
        }
 
        /**
-        * @param $section null|bool|int or a section number (0, 1, 2, T1, T2...)
-        * @param string $text new text of the section
-        * @param string $sectionTitle new section's subject, only if $section is 'new'
-        * @param string $edittime revision timestamp or null to use the current revision
+        * @param mixed $section Null/false, a section number (0, 1, 2, T1, T2, ...) or "new".
+        * @param string $text New text of the section.
+        * @param string $sectionTitle New section's subject, only if $section is "new".
+        * @param string $edittime Revision timestamp or null to use the current revision.
+        *
         * @throws MWException
-        * @return String new complete article text, or null if error
+        * @return string New complete article text, or null if error.
         *
         * @deprecated since 1.21, use replaceSectionContent() instead
         */
@@ -1486,13 +1488,15 @@ class WikiPage implements Page, IDBAccessObject {
                }
 
                if ( !$this->supportsSections() ) {
-                       throw new MWException( "sections not supported for content model " . $this->getContentHandler()->getModelID() );
+                       throw new MWException( "sections not supported for content model " .
+                               $this->getContentHandler()->getModelID() );
                }
 
                // could even make section title, but that's not required.
                $sectionContent = ContentHandler::makeContent( $text, $this->getTitle() );
 
-               $newContent = $this->replaceSectionContent( $section, $sectionContent, $sectionTitle, $edittime );
+               $newContent = $this->replaceSectionContent( $section, $sectionContent, $sectionTitle,
+                       $edittime );
 
                return ContentHandler::getContentText( $newContent );
        }
@@ -1500,7 +1504,7 @@ class WikiPage implements Page, IDBAccessObject {
        /**
         * Returns true if this page's content model supports sections.
         *
-        * @return boolean whether sections are supported.
+        * @return bool
         *
         * @todo The skin should check this and not offer section functionality if sections are not supported.
         * @todo The EditPage should check this and not offer section functionality if sections are not supported.
@@ -1510,17 +1514,18 @@ class WikiPage implements Page, IDBAccessObject {
        }
 
        /**
-        * @param $section null|bool|int or a section number (0, 1, 2, T1, T2...)
-        * @param $sectionContent Content: new content of the section
-        * @param string $sectionTitle new section's subject, only if $section is 'new'
-        * @param string $edittime revision timestamp or null to use the current revision
+        * @param mixed $section Null/false, a section number (0, 1, 2, T1, T2, ...) or "new".
+        * @param Content $sectionContent New content of the section.
+        * @param string $sectionTitle New section's subject, only if $section is "new".
+        * @param string $edittime Revision timestamp or null to use the current revision.
         *
         * @throws MWException
-        * @return Content new complete article content, or null if error
+        * @return Content New complete article content, or null if error.
         *
         * @since 1.21
         */
-       public function replaceSectionContent( $section, Content $sectionContent, $sectionTitle = '', $edittime = null ) {
+       public function replaceSectionContent( $section, Content $sectionContent, $sectionTitle = '',
+               $edittime = null ) {
                wfProfileIn( __METHOD__ );
 
                if ( strval( $section ) == '' ) {
@@ -1529,7 +1534,8 @@ class WikiPage implements Page, IDBAccessObject {
                } else {
                        if ( !$this->supportsSections() ) {
                                wfProfileOut( __METHOD__ );
-                               throw new MWException( "sections not supported for content model " . $this->getContentHandler()->getModelID() );
+                               throw new MWException( "sections not supported for content model " .
+                                       $this->getContentHandler()->getModelID() );
                        }
 
                        // Bug 30711: always use current version when adding a new section
@@ -2612,9 +2618,11 @@ class WikiPage implements Page, IDBAccessObject {
        /**
         * Take an array of page restrictions and flatten it to a string
         * suitable for insertion into the page_restrictions field.
-        * @param $limit Array
+        *
+        * @param string[] $limit
+        *
         * @throws MWException
-        * @return String
+        * @return string
         */
        protected static function flattenRestrictions( $limit ) {
                if ( !is_array( $limit ) ) {
index fcaaf10..a2a15e0 100644 (file)
@@ -72,7 +72,6 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                        SearchEngine::create( $params['backend'] ) : SearchEngine::create();
                $search->setLimitOffset( $limit + 1, $params['offset'] );
                $search->setNamespaces( $params['namespace'] );
-               $search->showRedirects = $params['redirects'];
 
                $query = $search->transformSearchTerm( $query );
                $query = $search->replacePrefixes( $query );
@@ -299,7 +298,6 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                ),
                                ApiBase::PARAM_ISMULTI => true,
                        ),
-                       'redirects' => false,
                        'offset' => 0,
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
@@ -345,7 +343,6 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                ' sectiontitle     - Adds the title of the matching section',
                                ' hasrelated       - Indicates whether a related search is available',
                        ),
-                       'redirects' => 'Include redirect pages in the search',
                        'offset' => 'Use this value to continue paging (return by query)',
                        'limit' => 'How many total pages to return',
                        'interwiki' => 'Include interwiki results in the search, if available'
index 950baea..c19a51d 100644 (file)
@@ -1066,16 +1066,17 @@ abstract class File {
 
        /**
         * @param string $thumbName Thumbnail name
+        * @param string $dispositionType Type of disposition (either "attachment" or "inline")
         * @return string Content-Disposition header value
         */
-       function getThumbDisposition( $thumbName ) {
+       function getThumbDisposition( $thumbName, $dispositionType = 'inline' ) {
                $fileName = $this->name; // file name to suggest
                $thumbExt = FileBackend::extensionFromPath( $thumbName );
                if ( $thumbExt != '' && $thumbExt !== $this->getExtension() ) {
                        $fileName .= ".$thumbExt";
                }
 
-               return FileBackend::makeContentDisposition( 'inline', $fileName );
+               return FileBackend::makeContentDisposition( $dispositionType, $fileName );
        }
 
        /**
index 4a27692..217142c 100644 (file)
@@ -142,7 +142,7 @@ abstract class BagOStuff {
         * @return bool success
         */
        protected function mergeViaLock( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
-               if ( !$this->lock( $key, 60 ) ) {
+               if ( !$this->lock( $key, 6 ) ) {
                        return false;
                }
 
@@ -168,7 +168,7 @@ abstract class BagOStuff {
         * @param $timeout integer [optional]
         * @return bool success
         */
-       public function lock( $key, $timeout = 60 ) {
+       public function lock( $key, $timeout = 6 ) {
                $timestamp = microtime( true ); // starting UNIX timestamp
                if ( $this->add( "{$key}:lock", 1, $timeout ) ) {
                        return true;
index d572426..d4df91a 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index b90ca44..0d9ef78 100644 (file)
@@ -142,11 +142,8 @@ class ResourceLoaderContext {
         */
        public function getLanguage() {
                if ( $this->language === null ) {
-                       global $wgLang;
-                       $this->language = $this->request->getVal( 'lang' );
-                       if ( !$this->language ) {
-                               $this->language = $wgLang->getCode();
-                       }
+                       // Must be a valid language code after this point (bug 62849)
+                       $this->language = RequestContext::sanitizeLangCode( $this->request->getVal( 'lang' ) );
                }
                return $this->language;
        }
@@ -158,7 +155,7 @@ class ResourceLoaderContext {
                if ( $this->direction === null ) {
                        $this->direction = $this->request->getVal( 'dir' );
                        if ( !$this->direction ) {
-                               # directionality based on user language (see bug 6100)
+                               // Determine directionality based on user language (bug 6100)
                                $this->direction = Language::factory( $this->getLanguage() )->getDir();
                        }
                }
index b4f57c1..5ee6bd2 100644 (file)
@@ -27,15 +27,22 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
        /* Protected Members */
 
        protected $modifiedTime = array();
+       protected $configVars = array();
        protected $targets = array( 'desktop', 'mobile' );
 
        /* Protected Methods */
 
        /**
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return array
         */
        protected function getConfig( $context ) {
+
+               $hash = $context->getHash();
+               if ( isset( $this->configVars[$hash] ) ) {
+                       return $this->configVars[$hash];
+               }
+
                global $wgLoadScript, $wgScript, $wgStylePath, $wgScriptExtension,
                        $wgArticlePath, $wgScriptPath, $wgServer, $wgContLang,
                        $wgVariantArticlePath, $wgActionPaths, $wgVersion,
@@ -106,70 +113,100 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
 
                wfRunHooks( 'ResourceLoaderGetConfigVars', array( &$vars ) );
 
-               return $vars;
+               $this->configVars[$hash] = $vars;
+               return $this->configVars[$hash];
        }
 
        /**
-        * Gets registration code for all modules
+        * Get registration code for all modules.
         *
-        * @param $context ResourceLoaderContext object
-        * @return String: JavaScript code for registering all modules with the client loader
+        * @param ResourceLoaderContext $context object
+        * @return string JavaScript code for registering all modules with the client loader
         */
        public static function getModuleRegistrations( ResourceLoaderContext $context ) {
                global $wgCacheEpoch;
                wfProfileIn( __METHOD__ );
 
-               $out = '';
-               $registrations = array();
                $resourceLoader = $context->getResourceLoader();
                $target = $context->getRequest()->getVal( 'target', 'desktop' );
 
-               // Register sources
-               $out .= ResourceLoader::makeLoaderSourcesScript( $resourceLoader->getSources() );
+               $out = '';
+               $registryData = array();
 
-               // Register modules
+               // Get registry data
                foreach ( $resourceLoader->getModuleNames() as $name ) {
                        $module = $resourceLoader->getModule( $name );
                        $moduleTargets = $module->getTargets();
                        if ( !in_array( $target, $moduleTargets ) ) {
                                continue;
                        }
-                       $deps = $module->getDependencies();
-                       $group = $module->getGroup();
-                       $source = $module->getSource();
-                       // Support module loader scripts
-                       $loader = $module->getLoaderScript();
-                       if ( $loader !== false ) {
-                               $version = wfTimestamp( TS_ISO_8601_BASIC,
-                                       $module->getModifiedTime( $context ) );
-                               $out .= ResourceLoader::makeCustomLoaderScript( $name, $version, $deps, $group, $source, $loader );
-                               continue;
-                       }
 
-                       // Automatically register module
                        // getModifiedTime() is supposed to return a UNIX timestamp, but it doesn't always
                        // seem to do that, and custom implementations might forget. Coerce it to TS_UNIX
                        $moduleMtime = wfTimestamp( TS_UNIX, $module->getModifiedTime( $context ) );
                        $mtime = max( $moduleMtime, wfTimestamp( TS_UNIX, $wgCacheEpoch ) );
 
-                       if ( !count( $deps ) && $group === null && $source === 'local' ) {
-                               // Modules without dependencies, a group or a foreign source pass two arguments (name, timestamp) to
-                               // mw.loader.register()
-                               $registrations[] = array( $name, $mtime );
-                       } elseif ( $group === null && $source === 'local' ) {
-                               // Modules with dependencies but no group or foreign source pass three arguments
-                               // (name, timestamp, dependencies) to mw.loader.register()
-                               $registrations[] = array( $name, $mtime, $deps );
-                       } elseif ( $source === 'local' ) {
-                               // Modules with a group but no foreign source pass four arguments (name, timestamp, dependencies, group)
-                               // to mw.loader.register()
-                               $registrations[] = array( $name, $mtime, $deps, $group );
+                       // FIXME: Convert to numbers, wfTimestamp always gives us stings, even for TS_UNIX
+
+                       $registryData[ $name ] = array(
+                               'version' => $mtime,
+                               'dependencies' => $module->getDependencies(),
+                               'group' => $module->getGroup(),
+                               'source' => $module->getSource(),
+                               'loader' => $module->getLoaderScript(),
+                       );
+               }
+
+               // Register sources
+               $out .= ResourceLoader::makeLoaderSourcesScript( $resourceLoader->getSources() );
+
+               // Concatenate module loader scripts and figure out the different call
+               // signatures for mw.loader.register
+               $registrations = array();
+               foreach ( $registryData as $name => $data ) {
+                       if ( $data['loader'] !== false ) {
+                               $out .= ResourceLoader::makeCustomLoaderScript(
+                                       $name,
+                                       wfTimestamp( TS_ISO_8601_BASIC, $data['version'] ),
+                                       $data['dependencies'],
+                                       $data['group'],
+                                       $data['source'],
+                                       $data['loader']
+                               );
+                               continue;
+                       }
+
+                       if ( !count( $data['dependencies'] ) && $data['group'] === null && $data['source'] === 'local' ) {
+                               // Modules without dependencies, a group or a foreign source;
+                               // call mw.loader.register(name, timestamp)
+                               $registrations[] = array( $name, $data['version'] );
+                       } elseif ( $data['group'] === null && $data['source'] === 'local' ) {
+                               // Modules with dependencies but no group or foreign source;
+                               // call mw.loader.register(name, timestamp, dependencies)
+                               $registrations[] = array( $name, $data['version'], $data['dependencies'] );
+                       } elseif ( $data['source'] === 'local' ) {
+                               // Modules with a group but no foreign source;
+                               // call mw.loader.register(name, timestamp, dependencies, group)
+                               $registrations[] = array(
+                                       $name,
+                                       $data['version'],
+                                       $data['dependencies'],
+                                       $data['group']
+                               );
                        } else {
-                               // Modules with a foreign source pass five arguments (name, timestamp, dependencies, group, source)
-                               // to mw.loader.register()
-                               $registrations[] = array( $name, $mtime, $deps, $group, $source );
+                               // Modules with a foreign source;
+                               // call mw.loader.register(name, timestamp, dependencies, group, source)
+                               $registrations[] = array(
+                                       $name,
+                                       $data['version'],
+                                       $data['dependencies'],
+                                       $data['group'],
+                                       $data['source']
+                               );
                        }
                }
+
+               // Register modules
                $out .= ResourceLoader::makeLoaderRegisterScript( $registrations );
 
                wfProfileOut( __METHOD__ );
@@ -191,7 +228,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
         * This is a helper for getScript(), but can also be called standalone, such
         * as when generating an AppCache manifest.
         *
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return string
         */
        public static function getStartupModulesUrl( ResourceLoaderContext $context ) {
@@ -222,7 +259,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
        }
 
        /**
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return string
         */
        public function getScript( ResourceLoaderContext $context ) {
@@ -260,7 +297,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
        }
 
        /**
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return array|mixed
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
@@ -278,7 +315,8 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
 
                $time = max(
                        wfTimestamp( TS_UNIX, $wgCacheEpoch ),
-                       filemtime( "$IP/resources/startup.js" )
+                       filemtime( "$IP/resources/startup.js" ),
+                       $this->getHashMtime( $context )
                );
 
                // ATTENTION!: Because of the line below, this is not going to cause
@@ -297,6 +335,25 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return $this->modifiedTime[$hash];
        }
 
+       /**
+        * Hash of all dynamic data embedded in getScript().
+        *
+        * Detect changes to mw.config settings embedded in #getScript (bug 28899).
+        *
+        * @param $context ResourceLoaderContext
+        * @return string: Hash
+        */
+       public function getModifiedHash( ResourceLoaderContext $context ) {
+               global $wgLegacyJavaScriptGlobals;
+
+               $data = array(
+                       'vars' => $this->getConfig( $context ),
+                       'wgLegacyJavaScriptGlobals' => $wgLegacyJavaScriptGlobals,
+               );
+
+               return md5( serialize( $data ) );
+       }
+
        /**
         * @return string
         */
index a96ade0..507a520 100644 (file)
@@ -35,7 +35,6 @@ class SearchEngine {
        var $prefix = '';
        var $searchTerms = array();
        var $namespaces = array( NS_MAIN );
-       var $showRedirects = false;
        protected $showSuggestion = true;
 
        /// Feature values
@@ -72,7 +71,6 @@ class SearchEngine {
         */
        public function supports( $feature ) {
                switch ( $feature ) {
-               case 'list-redirects':
                case 'search-update':
                        return true;
                case 'title-suffix-filter':
index 15b5f1c..d92c9c8 100644 (file)
@@ -50,20 +50,6 @@ class SearchMssql extends SearchDatabase {
                return new MssqlSearchResultSet( $resultSet, $this->searchTerms );
        }
 
-       /**
-        * Return a partial WHERE clause to exclude redirects, if so set
-        *
-        * @return String
-        * @private
-        */
-       function queryRedirect() {
-               if ( $this->showRedirects ) {
-                       return '';
-               } else {
-                       return 'AND page_is_redirect=0';
-               }
-       }
-
        /**
         * Return a partial WHERE clause to limit the search to the given namespaces
         *
@@ -109,7 +95,6 @@ class SearchMssql extends SearchDatabase {
         */
        function getQuery( $filteredTerm, $fulltext ) {
                return $this->queryLimit( $this->queryMain( $filteredTerm, $fulltext ) . ' ' .
-                       $this->queryRedirect() . ' ' .
                        $this->queryNamespaces() . ' ' .
                        $this->queryRanking( $filteredTerm, $fulltext ) . ' ' );
        }
index c3edf51..c4d7d1e 100644 (file)
@@ -218,9 +218,7 @@ class SearchMySQL extends SearchDatabase {
         */
        protected function queryFeatures( &$query ) {
                foreach ( $this->features as $feature => $value ) {
-                       if ( $feature === 'list-redirects' && !$value ) {
-                               $query['conds']['page_is_redirect'] = 0;
-                       } elseif ( $feature === 'title-suffix-filter' && $value ) {
+                       if ( $feature === 'title-suffix-filter' && $value ) {
                                $query['conds'][] = 'page_title' . $this->db->buildLike( $this->db->anyString(), $value );
                        }
                }
index 2603161..e14de2c 100644 (file)
@@ -89,18 +89,6 @@ class SearchOracle extends SearchDatabase {
                return new MySQLSearchResultSet( $resultSet, $this->searchTerms );
        }
 
-       /**
-        * Return a partial WHERE clause to exclude redirects, if so set
-        * @return String
-        */
-       function queryRedirect() {
-               if ( $this->showRedirects ) {
-                       return '';
-               } else {
-                       return 'AND page_is_redirect=0';
-               }
-       }
-
        /**
         * Return a partial WHERE clause to limit the search to the given namespaces
         * @return String
@@ -147,7 +135,6 @@ class SearchOracle extends SearchDatabase {
         */
        function getQuery( $filteredTerm, $fulltext ) {
                return $this->queryLimit( $this->queryMain( $filteredTerm, $fulltext ) . ' ' .
-                       $this->queryRedirect() . ' ' .
                        $this->queryNamespaces() . ' ' .
                        $this->queryRanking( $filteredTerm, $fulltext ) . ' ' );
        }
index 142e5fd..4da63b3 100644 (file)
@@ -168,11 +168,6 @@ class SearchPostgres extends SearchDatabase {
                        "AND r.rev_text_id = c.old_id AND $fulltext @@ to_tsquery($searchstring)";
                }
 
-               ## Redirects
-               if ( !$this->showRedirects ) {
-                       $query .= ' AND page_is_redirect = 0';
-               }
-
                ## Namespaces - defaults to 0
                if ( !is_null( $this->namespaces ) ) { // null -> search all
                        if ( count( $this->namespaces ) < 1 ) {
index ebff68e..6b2b3c6 100644 (file)
@@ -184,18 +184,6 @@ class SearchSqlite extends SearchDatabase {
                return new SqliteSearchResultSet( $resultSet, $this->searchTerms, $total );
        }
 
-       /**
-        * Return a partial WHERE clause to exclude redirects, if so set
-        * @return String
-        */
-       function queryRedirect() {
-               if ( $this->showRedirects ) {
-                       return '';
-               } else {
-                       return 'AND page_is_redirect=0';
-               }
-       }
-
        /**
         * Return a partial WHERE clause to limit the search to the given namespaces
         * @return String
@@ -231,7 +219,6 @@ class SearchSqlite extends SearchDatabase {
        function getQuery( $filteredTerm, $fulltext ) {
                return $this->limitResult(
                        $this->queryMain( $filteredTerm, $fulltext ) . ' ' .
-                       $this->queryRedirect() . ' ' .
                        $this->queryNamespaces()
                );
        }
@@ -267,8 +254,7 @@ class SearchSqlite extends SearchDatabase {
                $searchindex = $this->db->tableName( 'searchindex' );
                return "SELECT COUNT(*) AS c " .
                        "FROM $page,$searchindex " .
-                       "WHERE page_id=$searchindex.rowid AND $match" .
-                       $this->queryRedirect() . ' ' .
+                       "WHERE page_id=$searchindex.rowid AND $match " .
                        $this->queryNamespaces();
        }
 
index 888829a..14ac401 100644 (file)
@@ -80,6 +80,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
        public function getRows() {
                $opts = $this->getOptions();
                $conds = $this->buildMainQueryConds( $opts );
+
                return $this->doMainQuery( $conds, $opts );
        }
 
@@ -164,6 +165,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
         */
        protected function fetchOptionsFromRequest( $opts ) {
                $opts->fetchValuesFromRequest( $this->getRequest() );
+
                return $opts;
        }
 
@@ -293,6 +295,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                // }
 
                $dbr = $this->getDB();
+
                return $dbr->select(
                        $tables,
                        $fields,
index eb8557a..3fbb0e5 100644 (file)
@@ -27,7 +27,6 @@
  * @ingroup SpecialPage
  */
 abstract class RedirectSpecialPage extends UnlistedSpecialPage {
-
        // Query parameters that can be passed through redirects
        protected $mAllowedRedirectParams = array();
 
@@ -41,11 +40,13 @@ abstract class RedirectSpecialPage extends UnlistedSpecialPage {
                if ( $redirect instanceof Title ) {
                        $url = $redirect->getFullURL( $query );
                        $this->getOutput()->redirect( $url );
+
                        return $redirect;
                } elseif ( $redirect === true ) {
                        // Redirect to index.php with query parameters
                        $url = wfAppendQuery( wfScript( 'index' ), $query );
                        $this->getOutput()->redirect( $url );
+
                        return $redirect;
                } else {
                        $class = get_class( $this );
@@ -91,8 +92,11 @@ abstract class RedirectSpecialPage extends UnlistedSpecialPage {
  * @ingroup SpecialPage
  */
 abstract class SpecialRedirectToSpecial extends RedirectSpecialPage {
-       // @todo FIXME: Visibility must be declared
-       var $redirName, $redirSubpage;
+       /** @var string Name of redirect target */
+       protected $redirName;
+
+       /** @var string Name of subpage of redirect target */
+       protected $redirSubpage;
 
        function __construct(
                $name, $redirName, $redirSubpage = false,
@@ -171,12 +175,12 @@ abstract class SpecialRedirectToSpecial extends RedirectSpecialPage {
  *
  * @par Hook extension example:
  * @code
- *     $wgHooks['RedirectSpecialArticleRedirectParams'][] =
- *             'MyExtensionHooks::onRedirectSpecialArticleRedirectParams';
- *     public static function onRedirectSpecialArticleRedirectParams( &$redirectParams ) {
- *             $redirectParams[] = 'stable';
- *             return true;
- *     }
+ *    $wgHooks['RedirectSpecialArticleRedirectParams'][] =
+ *        'MyExtensionHooks::onRedirectSpecialArticleRedirectParams';
+ *    public static function onRedirectSpecialArticleRedirectParams( &$redirectParams ) {
+ *        $redirectParams[] = 'stable';
+ *        return true;
+ *    }
  * @endcode
  *
  * @ingroup SpecialPage
index e824a61..d9340b4 100644 (file)
@@ -74,6 +74,7 @@ class SpecialPage {
         */
        public static function getTitleFor( $name, $subpage = false, $fragment = '' ) {
                $name = SpecialPageFactory::getLocalNameFor( $name, $subpage );
+
                return Title::makeTitle( NS_SPECIAL, $name, $fragment );
        }
 
@@ -157,6 +158,7 @@ class SpecialPage {
         */
        function getFile() {
                wfDeprecated( __METHOD__, '1.18' );
+
                return $this->mFile;
        }
 
@@ -215,6 +217,7 @@ class SpecialPage {
                if ( !isset( $this->mLocalName ) ) {
                        $this->mLocalName = SpecialPageFactory::getLocalNameFor( $this->mName );
                }
+
                return $this->mLocalName;
        }
 
@@ -450,7 +453,6 @@ class SpecialPage {
                        $this->getOutput()->wrapWikiMsg(
                                "<div class='mw-specialpage-summary'>\n$1\n</div>", $msg );
                }
-
        }
 
        /**
@@ -475,6 +477,7 @@ class SpecialPage {
         */
        function getTitle( $subpage = false ) {
                wfDeprecated( __METHOD__, '1.23' );
+
                return $this->getPageTitle( $subpage );
        }
 
@@ -511,6 +514,7 @@ class SpecialPage {
                } else {
                        wfDebug( __METHOD__ . " called and \$mContext is null. " .
                                "Return RequestContext::getMain(); for sanity\n" );
+
                        return RequestContext::getMain();
                }
        }
@@ -564,6 +568,7 @@ class SpecialPage {
         */
        public function getLang() {
                wfDeprecated( __METHOD__, '1.19' );
+
                return $this->getLanguage();
        }
 
@@ -616,6 +621,7 @@ class SpecialPage {
                if ( $this->including() ) {
                        $message->setInterfaceMessageFlag( false );
                }
+
                return $message;
        }
 
index c4b840a..18793e3 100644 (file)
@@ -49,126 +49,126 @@ class SpecialPageFactory {
         */
        private static $list = array(
                // Maintenance Reports
-               'BrokenRedirects'           => 'BrokenRedirectsPage',
-               'Deadendpages'              => 'DeadendPagesPage',
-               'DoubleRedirects'           => 'DoubleRedirectsPage',
-               'Longpages'                 => 'LongPagesPage',
-               'Ancientpages'              => 'AncientPagesPage',
-               'Lonelypages'               => 'LonelyPagesPage',
-               'Fewestrevisions'           => 'FewestrevisionsPage',
-               'Withoutinterwiki'          => 'WithoutInterwikiPage',
-               'Protectedpages'            => 'SpecialProtectedpages',
-               'Protectedtitles'           => 'SpecialProtectedtitles',
-               'Shortpages'                => 'ShortpagesPage',
-               'Uncategorizedcategories'   => 'UncategorizedCategoriesPage',
-               'Uncategorizedimages'       => 'UncategorizedImagesPage',
-               'Uncategorizedpages'        => 'UncategorizedPagesPage',
-               'Uncategorizedtemplates'    => 'UncategorizedTemplatesPage',
-               'Unusedcategories'          => 'UnusedCategoriesPage',
-               'Unusedimages'              => 'UnusedimagesPage',
-               'Unusedtemplates'           => 'UnusedtemplatesPage',
-               'Unwatchedpages'            => 'UnwatchedpagesPage',
-               'Wantedcategories'          => 'WantedCategoriesPage',
-               'Wantedfiles'               => 'WantedFilesPage',
-               'Wantedpages'               => 'WantedPagesPage',
-               'Wantedtemplates'           => 'WantedTemplatesPage',
+               'BrokenRedirects' => 'BrokenRedirectsPage',
+               'Deadendpages' => 'DeadendPagesPage',
+               'DoubleRedirects' => 'DoubleRedirectsPage',
+               'Longpages' => 'LongPagesPage',
+               'Ancientpages' => 'AncientPagesPage',
+               'Lonelypages' => 'LonelyPagesPage',
+               'Fewestrevisions' => 'FewestrevisionsPage',
+               'Withoutinterwiki' => 'WithoutInterwikiPage',
+               'Protectedpages' => 'SpecialProtectedpages',
+               'Protectedtitles' => 'SpecialProtectedtitles',
+               'Shortpages' => 'ShortpagesPage',
+               'Uncategorizedcategories' => 'UncategorizedCategoriesPage',
+               'Uncategorizedimages' => 'UncategorizedImagesPage',
+               'Uncategorizedpages' => 'UncategorizedPagesPage',
+               'Uncategorizedtemplates' => 'UncategorizedTemplatesPage',
+               'Unusedcategories' => 'UnusedCategoriesPage',
+               'Unusedimages' => 'UnusedimagesPage',
+               'Unusedtemplates' => 'UnusedtemplatesPage',
+               'Unwatchedpages' => 'UnwatchedpagesPage',
+               'Wantedcategories' => 'WantedCategoriesPage',
+               'Wantedfiles' => 'WantedFilesPage',
+               'Wantedpages' => 'WantedPagesPage',
+               'Wantedtemplates' => 'WantedTemplatesPage',
 
                // List of pages
-               'Allpages'                  => 'SpecialAllpages',
-               'Prefixindex'               => 'SpecialPrefixindex',
-               'Categories'                => 'SpecialCategories',
-               'Listredirects'             => 'ListredirectsPage',
-               'PagesWithProp'             => 'SpecialPagesWithProp',
+               'Allpages' => 'SpecialAllpages',
+               'Prefixindex' => 'SpecialPrefixindex',
+               'Categories' => 'SpecialCategories',
+               'Listredirects' => 'ListredirectsPage',
+               'PagesWithProp' => 'SpecialPagesWithProp',
 
                // Login/create account
-               'Userlogin'                 => 'LoginForm',
-               'CreateAccount'             => 'SpecialCreateAccount',
+               'Userlogin' => 'LoginForm',
+               'CreateAccount' => 'SpecialCreateAccount',
 
                // Users and rights
-               'Block'                     => 'SpecialBlock',
-               'Unblock'                   => 'SpecialUnblock',
-               'BlockList'                 => 'SpecialBlockList',
-               'ChangePassword'            => 'SpecialChangePassword',
-               'PasswordReset'             => 'SpecialPasswordReset',
-               'DeletedContributions'      => 'DeletedContributionsPage',
-               'Preferences'               => 'SpecialPreferences',
-               'ResetTokens'               => 'SpecialResetTokens',
-               'Contributions'             => 'SpecialContributions',
-               'Listgrouprights'           => 'SpecialListGroupRights',
-               'Listusers'                 => 'SpecialListUsers',
-               'Listadmins'                => 'SpecialListAdmins',
-               'Listbots'                  => 'SpecialListBots',
-               'Userrights'                => 'UserrightsPage',
-               'EditWatchlist'             => 'SpecialEditWatchlist',
+               'Block' => 'SpecialBlock',
+               'Unblock' => 'SpecialUnblock',
+               'BlockList' => 'SpecialBlockList',
+               'ChangePassword' => 'SpecialChangePassword',
+               'PasswordReset' => 'SpecialPasswordReset',
+               'DeletedContributions' => 'DeletedContributionsPage',
+               'Preferences' => 'SpecialPreferences',
+               'ResetTokens' => 'SpecialResetTokens',
+               'Contributions' => 'SpecialContributions',
+               'Listgrouprights' => 'SpecialListGroupRights',
+               'Listusers' => 'SpecialListUsers',
+               'Listadmins' => 'SpecialListAdmins',
+               'Listbots' => 'SpecialListBots',
+               'Userrights' => 'UserrightsPage',
+               'EditWatchlist' => 'SpecialEditWatchlist',
 
                // Recent changes and logs
-               'Newimages'                 => 'SpecialNewFiles',
-               'Log'                       => 'SpecialLog',
-               'Watchlist'                 => 'SpecialWatchlist',
-               'Newpages'                  => 'SpecialNewpages',
-               'Recentchanges'             => 'SpecialRecentChanges',
-               'Recentchangeslinked'       => 'SpecialRecentChangesLinked',
-               'Tags'                      => 'SpecialTags',
+               'Newimages' => 'SpecialNewFiles',
+               'Log' => 'SpecialLog',
+               'Watchlist' => 'SpecialWatchlist',
+               'Newpages' => 'SpecialNewpages',
+               'Recentchanges' => 'SpecialRecentChanges',
+               'Recentchangeslinked' => 'SpecialRecentChangesLinked',
+               'Tags' => 'SpecialTags',
 
                // Media reports and uploads
-               'Listfiles'                 => 'SpecialListFiles',
-               'Filepath'                  => 'SpecialFilepath',
-               'MIMEsearch'                => 'MIMEsearchPage',
-               'FileDuplicateSearch'       => 'FileDuplicateSearchPage',
-               'Upload'                    => 'SpecialUpload',
-               'UploadStash'               => 'SpecialUploadStash',
-               'ListDuplicatedFiles'       => 'ListDuplicatedFilesPage',
+               'Listfiles' => 'SpecialListFiles',
+               'Filepath' => 'SpecialFilepath',
+               'MIMEsearch' => 'MIMEsearchPage',
+               'FileDuplicateSearch' => 'FileDuplicateSearchPage',
+               'Upload' => 'SpecialUpload',
+               'UploadStash' => 'SpecialUploadStash',
+               'ListDuplicatedFiles' => 'ListDuplicatedFilesPage',
 
                // Data and tools
-               'Statistics'                => 'SpecialStatistics',
-               'Allmessages'               => 'SpecialAllmessages',
-               'Version'                   => 'SpecialVersion',
-               'Lockdb'                    => 'SpecialLockdb',
-               'Unlockdb'                  => 'SpecialUnlockdb',
+               'Statistics' => 'SpecialStatistics',
+               'Allmessages' => 'SpecialAllmessages',
+               'Version' => 'SpecialVersion',
+               'Lockdb' => 'SpecialLockdb',
+               'Unlockdb' => 'SpecialUnlockdb',
 
                // Redirecting special pages
-               'LinkSearch'                => 'LinkSearchPage',
-               'Randompage'                => 'RandomPage',
-               'RandomInCategory'          => 'SpecialRandomInCategory',
-               'Randomredirect'            => 'SpecialRandomredirect',
+               'LinkSearch' => 'LinkSearchPage',
+               'Randompage' => 'RandomPage',
+               'RandomInCategory' => 'SpecialRandomInCategory',
+               'Randomredirect' => 'SpecialRandomredirect',
 
                // High use pages
-               'Mostlinkedcategories'      => 'MostlinkedCategoriesPage',
-               'Mostimages'                => 'MostimagesPage',
-               'Mostinterwikis'            => 'MostinterwikisPage',
-               'Mostlinked'                => 'MostlinkedPage',
-               'Mostlinkedtemplates'       => 'MostlinkedTemplatesPage',
-               'Mostcategories'            => 'MostcategoriesPage',
-               'Mostrevisions'             => 'MostrevisionsPage',
+               'Mostlinkedcategories' => 'MostlinkedCategoriesPage',
+               'Mostimages' => 'MostimagesPage',
+               'Mostinterwikis' => 'MostinterwikisPage',
+               'Mostlinked' => 'MostlinkedPage',
+               'Mostlinkedtemplates' => 'MostlinkedTemplatesPage',
+               'Mostcategories' => 'MostcategoriesPage',
+               'Mostrevisions' => 'MostrevisionsPage',
 
                // Page tools
-               'ComparePages'              => 'SpecialComparePages',
-               'Export'                    => 'SpecialExport',
-               'Import'                    => 'SpecialImport',
-               'Undelete'                  => 'SpecialUndelete',
-               'Whatlinkshere'             => 'SpecialWhatLinksHere',
-               'MergeHistory'              => 'SpecialMergeHistory',
-               'ExpandTemplates'           => 'SpecialExpandTemplates',
+               'ComparePages' => 'SpecialComparePages',
+               'Export' => 'SpecialExport',
+               'Import' => 'SpecialImport',
+               'Undelete' => 'SpecialUndelete',
+               'Whatlinkshere' => 'SpecialWhatLinksHere',
+               'MergeHistory' => 'SpecialMergeHistory',
+               'ExpandTemplates' => 'SpecialExpandTemplates',
 
                // Other
-               'Booksources'               => 'SpecialBookSources',
+               'Booksources' => 'SpecialBookSources',
 
                // Unlisted / redirects
-               'Blankpage'                 => 'SpecialBlankpage',
-               'Diff'                      => 'SpecialDiff',
-               'Emailuser'                 => 'SpecialEmailUser',
-               'Movepage'                  => 'MovePageForm',
-               'Mycontributions'           => 'SpecialMycontributions',
-               'Mypage'                    => 'SpecialMypage',
-               'Mytalk'                    => 'SpecialMytalk',
-               'Myuploads'                 => 'SpecialMyuploads',
-               'AllMyUploads'              => 'SpecialAllMyUploads',
-               'PermanentLink'             => 'SpecialPermanentLink',
-               'Redirect'                  => 'SpecialRedirect',
-               'Revisiondelete'            => 'SpecialRevisionDelete',
-               'RunJobs'                   => 'SpecialRunJobs',
-               'Specialpages'              => 'SpecialSpecialpages',
-               'Userlogout'                => 'SpecialUserlogout',
+               'Blankpage' => 'SpecialBlankpage',
+               'Diff' => 'SpecialDiff',
+               'Emailuser' => 'SpecialEmailUser',
+               'Movepage' => 'MovePageForm',
+               'Mycontributions' => 'SpecialMycontributions',
+               'Mypage' => 'SpecialMypage',
+               'Mytalk' => 'SpecialMytalk',
+               'Myuploads' => 'SpecialMyuploads',
+               'AllMyUploads' => 'SpecialAllMyUploads',
+               'PermanentLink' => 'SpecialPermanentLink',
+               'Redirect' => 'SpecialRedirect',
+               'Revisiondelete' => 'SpecialRevisionDelete',
+               'RunJobs' => 'SpecialRunJobs',
+               'Specialpages' => 'SpecialSpecialpages',
+               'Userlogout' => 'SpecialUserlogout',
        );
 
        private static $aliases;
@@ -221,6 +221,7 @@ class SpecialPageFactory {
 
                        wfProfileOut( __METHOD__ );
                }
+
                return self::$list;
        }
 
@@ -254,6 +255,7 @@ class SpecialPageFactory {
                        // Cast to object: func()[$key] doesn't work, but func()->$key does
                        self::$aliases = (object)self::$aliases;
                }
+
                return self::$aliases;
        }
 
@@ -322,6 +324,7 @@ class SpecialPageFactory {
         */
        public static function exists( $name ) {
                list( $title, /*...*/ ) = self::resolveAlias( $name );
+
                return property_exists( self::getList(), $title );
        }
 
@@ -337,13 +340,16 @@ class SpecialPageFactory {
                        $rec = self::getList()->$realName;
                        if ( is_string( $rec ) ) {
                                $className = $rec;
+
                                return new $className;
                        } elseif ( is_array( $rec ) ) {
                                // @deprecated, officially since 1.18, unofficially since forever
-                               wfDebug( "Array syntax for \$wgSpecialPages is deprecated, define a subclass of SpecialPage instead." );
+                               wfDebug( "Array syntax for \$wgSpecialPages is deprecated, " .
+                                       "define a subclass of SpecialPage instead." );
                                $className = array_shift( $rec );
                                self::getList()->$realName = MWFunction::newObj( $className, $rec );
                        }
+
                        return self::getList()->$realName;
                } else {
                        return null;
@@ -375,6 +381,7 @@ class SpecialPageFactory {
                                }
                        }
                }
+
                return $pages;
        }
 
@@ -391,6 +398,7 @@ class SpecialPageFactory {
                                $pages[$name] = $page;
                        }
                }
+
                return $pages;
        }
 
@@ -413,6 +421,7 @@ class SpecialPageFactory {
                                $pages[$name] = $page;
                        }
                }
+
                return $pages;
        }
 
@@ -454,6 +463,7 @@ class SpecialPageFactory {
 
                        $context->getOutput()->showErrorPage( 'nosuchspecialpage', 'nospecialpagetext' );
                        wfProfileOut( __METHOD__ );
+
                        return false;
                }
 
@@ -473,13 +483,14 @@ class SpecialPageFactory {
                                $url = $title->getFullURL( $query );
                                $context->getOutput()->redirect( $url );
                                wfProfileOut( __METHOD__ );
+
                                return $title;
                        } else {
                                $context->setTitle( $page->getPageTitle( $par ) );
                        }
-
                } elseif ( !$page->isIncludable() ) {
                        wfProfileOut( __METHOD__ );
+
                        return false;
                }
 
@@ -491,6 +502,7 @@ class SpecialPageFactory {
                $page->run( $par );
                wfProfileOut( $profName );
                wfProfileOut( __METHOD__ );
+
                return true;
        }
 
@@ -571,6 +583,7 @@ class SpecialPageFactory {
                if ( $subpage !== false && !is_null( $subpage ) ) {
                        $name = "$name/$subpage";
                }
+
                return $wgContLang->ucfirst( $name );
        }
 
index d01bfd7..734544d 100644 (file)
  */
 class SpecialCategories extends SpecialPage {
 
-       function __construct() {
+       /**
+        * @var PageLinkRenderer
+        */
+       protected $linkRenderer = null;
+
+       public function __construct() {
                parent::__construct( 'Categories' );
+
+               // Since we don't control the constructor parameters, we can't inject services that way.
+               // Instead, we initialize services in the execute() method, and allow them to be overridden
+               // using the initServices() method.
+       }
+
+       /**
+        * Initialize or override the PageLinkRenderer SpecialCategories collaborates with.
+        * Useful mainly for testing.
+        *
+        * @todo: the pager should also be injected, and de-coupled from the rendering logic.
+        *
+        * @param PageLinkRenderer $linkRenderer
+        */
+       public function setPageLinkRenderer(
+               PageLinkRenderer $linkRenderer
+       ) {
+               $this->linkRenderer = $linkRenderer;
+       }
+
+       /**
+        * Initialize any services we'll need (unless it has already been provided via a setter).
+        * This allows for dependency injection even though we don't control object creation.
+        */
+       private function initServices() {
+               if ( !$this->linkRenderer ) {
+                       $lang = $this->getContext()->getLanguage();
+                       $titleFormatter = new MediaWikiTitleCodec( $lang, GenderCache::singleton() );
+                       $this->linkRenderer = new MediaWikiPageLinkRenderer( $titleFormatter );
+               }
        }
 
-       function execute( $par ) {
+       public function execute( $par ) {
+               $this->initServices();
+
                $this->setHeaders();
                $this->outputHeader();
                $this->getOutput()->allowClickjacking();
 
                $from = $this->getRequest()->getText( 'from', $par );
 
-               $cap = new CategoryPager( $this->getContext(), $from );
+               $cap = new CategoryPager( $this->getContext(), $from, $this->linkRenderer );
                $cap->doQuery();
 
                $this->getOutput()->addHTML(
@@ -63,7 +100,19 @@ class SpecialCategories extends SpecialPage {
  * @ingroup SpecialPage Pager
  */
 class CategoryPager extends AlphabeticPager {
-       function __construct( IContextSource $context, $from ) {
+
+       /**
+        * @var PageLinkRenderer
+        */
+       protected $linkRenderer;
+
+       /**
+        * @param IContextSource $context
+        * @param string $from
+        * @param PageLinkRenderer $linkRenderer
+        */
+       public function __construct( IContextSource $context, $from, PageLinkRenderer $linkRenderer
+       ) {
                parent::__construct( $context );
                $from = str_replace( ' ', '_', $from );
                if ( $from !== '' ) {
@@ -71,6 +120,8 @@ class CategoryPager extends AlphabeticPager {
                        $this->setOffset( $from );
                        $this->setIncludeOffset( true );
                }
+
+               $this->linkRenderer = $linkRenderer;
        }
 
        function getQueryInfo() {
@@ -120,11 +171,12 @@ class CategoryPager extends AlphabeticPager {
        }
 
        function formatRow( $result ) {
-               $title = Title::makeTitle( NS_CATEGORY, $result->cat_title );
-               $titleText = Linker::link( $title, htmlspecialchars( $title->getText() ) );
-               $count = $this->msg( 'nmembers' )->numParams( $result->cat_pages )->escaped();
+               $title = new TitleValue( NS_CATEGORY, $result->cat_title );
+               $text = $title->getText();
+               $link = $this->linkRenderer->renderHtmlLink( $title, $text );
 
-               return Xml::tags( 'li', null, $this->getLanguage()->specialList( $titleText, $count ) ) . "\n";
+               $count = $this->msg( 'nmembers' )->numParams( $result->cat_pages )->escaped();
+               return Html::rawElement( 'li', null, $this->getLanguage()->specialList( $link, $count ) ) . "\n";
        }
 
        public function getStartForm( $from ) {
index 0356d45..91d0404 100644 (file)
@@ -107,6 +107,17 @@ class SpecialChangePassword extends FormSpecialPage {
                        ),
                );
 
+               if ( !$this->getUser()->isLoggedIn() ) {
+                       if ( !LoginForm::getLoginToken() ) {
+                               LoginForm::setLoginToken();
+                       }
+                       $fields['LoginOnChangeToken'] = array(
+                               'type' => 'hidden',
+                               'label' => 'Change Password Token',
+                               'default' => LoginForm::getLoginToken(),
+                       );
+               }
+
                $extraFields = array();
                wfRunHooks( 'ChangePasswordForm', array( &$extraFields ) );
                foreach ( $extraFields as $extra ) {
@@ -160,6 +171,14 @@ class SpecialChangePassword extends FormSpecialPage {
                        return false;
                }
 
+               if ( !$this->getUser()->isLoggedIn()
+                       && $request->getVal( 'wpLoginOnChangeToken' ) !== LoginForm::getLoginToken()
+               ) {
+                       // Potential CSRF (bug 62497)
+                       return false;
+               }
+
+
                if ( $request->getCheck( 'wpCancel' ) ) {
                        $titleObj = Title::newFromText( $request->getVal( 'returnto' ) );
                        if ( !$titleObj instanceof Title ) {
index 3acf141..af4f852 100644 (file)
@@ -951,8 +951,12 @@ class ContribsPager extends ReverseChronologicalPager {
                 * to extensions to subscribe to the hook to parse the row.
                 */
                wfSuppressWarnings();
-               $rev = new Revision( $row );
-               $validRevision = (bool)$rev->getId();
+               try {
+                       $rev = new Revision( $row );
+                       $validRevision = (bool)$rev->getId();
+               } catch ( MWException $e ) {
+                       $validRevision = false;
+               }
                wfRestoreWarnings();
 
                if ( $validRevision ) {
index 0b5b825..5995347 100644 (file)
  * @ingroup SpecialPage
  */
 class LinkSearchPage extends QueryPage {
+
+       /**
+        * @var PageLinkRenderer
+        */
+       protected $linkRenderer = null;
+
        function setParams( $params ) {
                $this->mQuery = $params['query'];
                $this->mNs = $params['namespace'];
@@ -35,6 +41,36 @@ class LinkSearchPage extends QueryPage {
 
        function __construct( $name = 'LinkSearch' ) {
                parent::__construct( $name );
+
+               // Since we don't control the constructor parameters, we can't inject services that way.
+               // Instead, we initialize services in the execute() method, and allow them to be overridden
+               // using the setServices() method.
+       }
+
+       /**
+        * Initialize or override the PageLinkRenderer LinkSearchPage collaborates with.
+        * Useful mainly for testing.
+        *
+        * @todo: query logic and rendering logic should be split and also injected
+        *
+        * @param PageLinkRenderer $linkRenderer
+        */
+       public function setPageLinkRenderer(
+               PageLinkRenderer $linkRenderer
+       ) {
+               $this->linkRenderer = $linkRenderer;
+       }
+
+       /**
+        * Initialize any services we'll need (unless it has already been provided via a setter).
+        * This allows for dependency injection even though we don't control object creation.
+        */
+       private function initServices() {
+               if ( !$this->linkRenderer ) {
+                       $lang = $this->getContext()->getLanguage();
+                       $titleFormatter = new MediaWikiTitleCodec( $lang, GenderCache::singleton() );
+                       $this->linkRenderer = new MediaWikiPageLinkRenderer( $titleFormatter );
+               }
        }
 
        function isCacheable() {
@@ -44,6 +80,8 @@ class LinkSearchPage extends QueryPage {
        function execute( $par ) {
                global $wgUrlProtocols, $wgMiserMode, $wgScript;
 
+               $this->initServices();
+
                $this->setHeaders();
                $this->outputHeader();
 
@@ -219,9 +257,10 @@ class LinkSearchPage extends QueryPage {
         * @return string
         */
        function formatResult( $skin, $result ) {
-               $title = Title::makeTitle( $result->namespace, $result->title );
+               $title = new TitleValue( (int)$result->namespace, $result->title );
+               $pageLink = $this->linkRenderer->renderHtmlLink( $title );
+
                $url = $result->url;
-               $pageLink = Linker::linkKnown( $title );
                $urlLink = Linker::makeExternalLink( $url, $url );
 
                return $this->msg( 'linksearch-line' )->rawParams( $urlLink, $pageLink )->escaped();
index 9401fca..c1dc158 100644 (file)
@@ -98,7 +98,7 @@ class ListDuplicatedFilesPage extends QueryPage {
                $image1 = Title::makeTitle( $result->namespace, $result->title );
                $dupeSearch = SpecialPage::getTitleFor( 'FileDuplicateSearch', $image1->getDBKey() );
 
-               $msg = wfMessage( 'listduplicatedfiles-entry' )
+               $msg = $this->msg( 'listduplicatedfiles-entry' )
                        ->params( $image1->getText() )
                        ->numParams( $result->value - 1 )
                        ->params( $dupeSearch->getPrefixedDBKey() );
index 780da7c..81463e5 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialRevisionDelete extends UnlistedSpecialPage {
-       /** True if the submit button was clicked, and the form was posted */
-       var $submitClicked;
+       /** @var bool Was the DB modified in this request */
+       protected $wasSaved = false;
 
-       /** Target ID list */
-       var $ids;
+       /** @var bool True if the submit button was clicked, and the form was posted */
+       private $submitClicked;
 
-       /** Archive name, for reviewing deleted files */
-       var $archiveName;
+       /** @var array Target ID list */
+       private $ids;
 
-       /** Edit token for securing image views against XSS */
-       var $token;
+       /** @var string Archive name, for reviewing deleted files */
+       private $archiveName;
 
-       /** Title object for target parameter */
-       var $targetObj;
+       /** @var string Edit token for securing image views against XSS */
+       private $token;
 
-       /** Deletion type, may be revision, archive, oldimage, filearchive, logging. */
-       var $typeName;
+       /** @var Title object for target parameter */
+       private $targetObj;
 
-       /** Array of checkbox specs (message, name, deletion bits) */
-       var $checks;
+       /** @var string Deletion type, may be revision, archive, oldimage, filearchive, logging. */
+       private $typeName;
 
-       /** UI Labels about the current type */
-       var $typeLabels;
+       /** @var array of checkbox specs (message, name, deletion bits) */
+       private $checks;
 
-       /** The RevDel_List object, storing the list of items to be deleted/undeleted */
-       var $list;
+       /** @var array UI Labels about the current type */
+       private $typeLabels;
 
-       /** Was the DB modified in this request */
-       protected $wasSaved = false;
+       /** @var RevDel_List object, storing the list of items to be deleted/undeleted */
+       private $revDelList;
+
+       /** @var bool Whether user is allowed to perform the action */
+       private $mIsAllowed;
+
+       /** @var string */
+       private $otherReason;
 
        /**
         * UI labels for each type.
         */
-       static $UILabels = array(
+       private static $UILabels = array(
                'revision' => array(
                        'check-label' => 'revdelete-hide-text',
                        'success' => 'revdelete-success',
                        'failure' => 'revdelete-failure',
                        'text' => 'revdelete-text-text',
+                       'selected'=> 'revdelete-selected-text',
                ),
                'archive' => array(
                        'check-label' => 'revdelete-hide-text',
                        'success' => 'revdelete-success',
                        'failure' => 'revdelete-failure',
                        'text' => 'revdelete-text-text',
+                       'selected'=> 'revdelete-selected-text',
                ),
                'oldimage' => array(
                        'check-label' => 'revdelete-hide-image',
                        'success' => 'revdelete-success',
                        'failure' => 'revdelete-failure',
                        'text' => 'revdelete-text-file',
+                       'selected'=> 'revdelete-selected-file',
                ),
                'filearchive' => array(
                        'check-label' => 'revdelete-hide-image',
                        'success' => 'revdelete-success',
                        'failure' => 'revdelete-failure',
                        'text' => 'revdelete-text-file',
+                       'selected'=> 'revdelete-selected-file',
                ),
                'logging' => array(
                        'check-label' => 'revdelete-hide-name',
                        'success' => 'logdelete-success',
                        'failure' => 'logdelete-failure',
                        'text' => 'logdelete-text',
+                       'selected' => 'logdelete-selected',
                ),
        );
 
@@ -325,13 +336,13 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
         * Get the list object for this request
         */
        protected function getList() {
-               if ( is_null( $this->list ) ) {
-                       $this->list = RevisionDeleter::createList(
+               if ( is_null( $this->revDelList ) ) {
+                       $this->revDelList = RevisionDeleter::createList(
                                $this->typeName, $this->getContext(), $this->targetObj, $this->ids
                        );
                }
 
-               return $this->list;
+               return $this->revDelList;
        }
 
        /**
@@ -341,12 +352,8 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
        protected function showForm() {
                $userAllowed = true;
 
-               if ( $this->typeName == 'logging' ) {
-                       $this->getOutput()->addWikiMsg( 'logdelete-selected', $this->getLanguage()->formatNum( count( $this->ids ) ) );
-               } else {
-                       $this->getOutput()->addWikiMsg( 'revdelete-selected',
-                               $this->targetObj->getPrefixedText(), count( $this->ids ) );
-               }
+               $this->getOutput()->wrapWikiMsg( "<strong>$1</strong>", array( $this->typeLabels['selected'],
+                       $this->getLanguage()->formatNum( count( $this->ids ) ), $this->targetObj->getPrefixedText() ) );
 
                $this->getOutput()->addHTML( "<ul>" );
 
@@ -552,7 +559,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $this->getOutput()->setPageTitle( $this->msg( 'actioncomplete' ) );
                $this->getOutput()->wrapWikiMsg( "<span class=\"success\">\n$1\n</span>", $this->typeLabels['success'] );
                $this->wasSaved = true;
-               $this->list->reloadFromMaster();
+               $this->revDelList->reloadFromMaster();
                $this->showForm();
        }
 
@@ -592,7 +599,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
         * @param $bitfield
         * @param $reason
         * @param $title
-        * @return
+        * @return Status
         */
        protected function save( $bitfield, $reason, $title ) {
                return $this->getList()->setVisibility(
index 129f8b7..c73ee53 100644 (file)
@@ -60,11 +60,6 @@ class SpecialSearch extends SpecialPage {
         */
        protected $namespaces;
 
-       /**
-        * @var bool
-        */
-       protected $searchRedirects;
-
        /**
         * @var string
         */
@@ -159,9 +154,6 @@ class SpecialSearch extends SpecialPage {
                        }
                }
 
-               // Redirects defaults to true, but we don't know whether it was ticked of or just missing
-               $default = $request->getBool( 'profile' ) ? 0 : 1;
-               $this->searchRedirects = $request->getBool( 'redirs', $default ) ? 1 : 0;
                $this->didYouMeanHtml = ''; # html of did you mean... link
                $this->fulltext = $request->getVal( 'fulltext' );
                $this->profile = $profile;
@@ -222,8 +214,6 @@ class SpecialSearch extends SpecialPage {
                $search = $this->getSearchEngine();
                $search->setLimitOffset( $this->limit, $this->offset );
                $search->setNamespaces( $this->namespaces );
-               $search->showRedirects = $this->searchRedirects; // BC
-               $search->setFeatureData( 'list-redirects', $this->searchRedirects );
                $search->prefix = $this->mPrefix;
                $term = $search->transformSearchTerm( $term );
 
@@ -517,7 +507,6 @@ class SpecialSearch extends SpecialPage {
         */
        protected function powerSearchOptions() {
                $opt = array();
-               $opt['redirs'] = $this->searchRedirects ? 1 : 0;
                if ( $this->profile !== 'advanced' ) {
                        $opt['profile'] = $this->profile;
                } else {
@@ -871,7 +860,6 @@ class SpecialSearch extends SpecialPage {
        protected function getProfileForm( $profile, $term ) {
                // Hidden stuff
                $opts = array();
-               $opts['redirs'] = $this->searchRedirects;
                $opts['profile'] = $this->profile;
 
                if ( $profile === 'advanced' ) {
@@ -941,16 +929,9 @@ class SpecialSearch extends SpecialPage {
 
                $showSections = array( 'namespaceTables' => $namespaceTables );
 
-               // Show redirects check only if backend supports it
-               if ( $this->getSearchEngine()->supports( 'list-redirects' ) ) {
-                       $showSections['redirects'] =
-                               Xml::checkLabel( $this->msg( 'powersearch-redir' )->text(), 'redirs', 'redirs', $this->searchRedirects );
-               }
-
                wfRunHooks( 'SpecialSearchPowerBox', array( &$showSections, $term, $opts ) );
 
                $hidden = '';
-               unset( $opts['redirs'] );
                foreach ( $opts as $key => $value ) {
                        $hidden .= Html::hidden( $key, $value );
                }
@@ -1134,7 +1115,6 @@ class SpecialSearch extends SpecialPage {
                foreach ( $namespaces as $n ) {
                        $opt['ns' . $n] = 1;
                }
-               $opt['redirs'] = $this->searchRedirects;
 
                $stParams = array_merge(
                        array(
index 3ed3ac3..3ba50bb 100644 (file)
@@ -103,9 +103,15 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                        $middle = ceil( $total / 2 );
                        $count = 0;
 
-                       $out->wrapWikiMsg( "<h2 class=\"mw-specialpagesgroup\" id=\"mw-specialpagesgroup-$group\">$1</h2>\n", "specialpages-group-$group" );
+                       $out->wrapWikiMsg(
+                               "<h2 class=\"mw-specialpagesgroup\" id=\"mw-specialpagesgroup-$group\">$1</h2>\n",
+                               "specialpages-group-$group"
+                       );
                        $out->addHTML(
-                               Html::openElement( 'table', array( 'style' => 'width:100%;', 'class' => 'mw-specialpages-table' ) ) . "\n" .
+                               Html::openElement(
+                                       'table',
+                                       array( 'style' => 'width:100%;', 'class' => 'mw-specialpages-table' )
+                               ) . "\n" .
                                Html::openElement( 'tr' ) . "\n" .
                                Html::openElement( 'td', array( 'style' => 'width:30%;vertical-align:top' ) ) . "\n" .
                                Html::openElement( 'ul' ) . "\n"
@@ -124,7 +130,11 @@ class SpecialSpecialpages extends UnlistedSpecialPage {
                                }
 
                                $link = Linker::linkKnown( $title, htmlspecialchars( $desc ) );
-                               $out->addHTML( Html::rawElement( 'li', array( 'class' => implode( ' ', $pageClasses ) ), $link ) . "\n" );
+                               $out->addHTML( Html::rawElement(
+                                               'li',
+                                               array( 'class' => implode( ' ', $pageClasses ) ),
+                                               $link
+                                       ) . "\n" );
 
                                # Split up the larger groups
                                $count++;
index c3a11f3..371e5ea 100644 (file)
@@ -28,7 +28,6 @@
  * @ingroup SpecialPage
  */
 class SpecialStatistics extends SpecialPage {
-
        private $views, $edits, $good, $images, $total, $users,
                $activeUsers = 0;
 
@@ -107,14 +106,16 @@ class SpecialStatistics extends SpecialPage {
 
        /**
         * Format a row
-        * @param $text  String: description of the row
-        * @param $number  Float: a statistical number
-        * @param $trExtraParams  Array: params to table row, see Html::elememt
-        * @param $descMsg  String: message key
+        * @param string $text Description of the row
+        * @param float $number A statistical number
+        * @param array $trExtraParams Params to table row, see Html::elememt
+        * @param string $descMsg Message key
         * @param array|string $descMsgParam Message parameters
-        * @return string table row in HTML format
+        * @return string Table row in HTML format
         */
-       private function formatRow( $text, $number, $trExtraParams = array(), $descMsg = '', $descMsgParam = '' ) {
+       private function formatRow( $text, $number, $trExtraParams = array(),
+               $descMsg = '', $descMsgParam = ''
+       ) {
                if ( $descMsg ) {
                        $msg = $this->msg( $descMsg, $descMsgParam );
                        if ( $msg->exists() ) {
@@ -140,29 +141,32 @@ class SpecialStatistics extends SpecialPage {
                        Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-pages' )->parse() ) .
                        Xml::closeElement( 'tr' ) .
                                $this->formatRow( Linker::linkKnown( SpecialPage::getTitleFor( 'Allpages' ),
-                                               $this->msg( 'statistics-articles' )->parse() ),
-                                               $this->getLanguage()->formatNum( $this->good ),
-                                               array( 'class' => 'mw-statistics-articles' ) ) .
+                                       $this->msg( 'statistics-articles' )->parse() ),
+                                       $this->getLanguage()->formatNum( $this->good ),
+                                       array( 'class' => 'mw-statistics-articles' ) ) .
                                $this->formatRow( $this->msg( 'statistics-pages' )->parse(),
-                                               $this->getLanguage()->formatNum( $this->total ),
-                                               array( 'class' => 'mw-statistics-pages' ),
-                                               'statistics-pages-desc' ) .
+                                       $this->getLanguage()->formatNum( $this->total ),
+                                       array( 'class' => 'mw-statistics-pages' ),
+                                       'statistics-pages-desc' ) .
                                $this->formatRow( Linker::linkKnown( SpecialPage::getTitleFor( 'Listfiles' ),
-                                               $this->msg( 'statistics-files' )->parse() ),
-                                               $this->getLanguage()->formatNum( $this->images ),
-                                               array( 'class' => 'mw-statistics-files' ) );
+                                       $this->msg( 'statistics-files' )->parse() ),
+                                       $this->getLanguage()->formatNum( $this->images ),
+                                       array( 'class' => 'mw-statistics-files' ) );
        }
 
        private function getEditStats() {
                return Xml::openElement( 'tr' ) .
                        Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-edits' )->parse() ) .
                        Xml::closeElement( 'tr' ) .
-                               $this->formatRow( $this->msg( 'statistics-edits' )->parse(),
-                                               $this->getLanguage()->formatNum( $this->edits ),
-                                               array( 'class' => 'mw-statistics-edits' ) ) .
-                               $this->formatRow( $this->msg( 'statistics-edits-average' )->parse(),
-                                               $this->getLanguage()->formatNum( sprintf( '%.2f', $this->total ? $this->edits / $this->total : 0 ) ),
-                                               array( 'class' => 'mw-statistics-edits-average' ) );
+                       $this->formatRow( $this->msg( 'statistics-edits' )->parse(),
+                               $this->getLanguage()->formatNum( $this->edits ),
+                               array( 'class' => 'mw-statistics-edits' )
+                       ) .
+                       $this->formatRow( $this->msg( 'statistics-edits-average' )->parse(),
+                               $this->getLanguage()
+                                       ->formatNum( sprintf( '%.2f', $this->total ? $this->edits / $this->total : 0 ) ),
+                               array( 'class' => 'mw-statistics-edits-average' )
+                       );
        }
 
        private function getUserStats() {
@@ -171,18 +175,20 @@ class SpecialStatistics extends SpecialPage {
                return Xml::openElement( 'tr' ) .
                        Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-users' )->parse() ) .
                        Xml::closeElement( 'tr' ) .
-                               $this->formatRow( $this->msg( 'statistics-users' )->parse(),
-                                               $this->getLanguage()->formatNum( $this->users ),
-                                               array( 'class' => 'mw-statistics-users' ) ) .
-                               $this->formatRow( $this->msg( 'statistics-users-active' )->parse() . ' ' .
-                                                       Linker::linkKnown(
-                                                               SpecialPage::getTitleFor( 'Activeusers' ),
-                                                               $this->msg( 'listgrouprights-members' )->escaped()
-                                                       ),
-                                               $this->getLanguage()->formatNum( $this->activeUsers ),
-                                               array( 'class' => 'mw-statistics-users-active' ),
-                                               'statistics-users-active-desc',
-                                               $this->getLanguage()->formatNum( $wgActiveUserDays ) );
+                       $this->formatRow( $this->msg( 'statistics-users' )->parse(),
+                               $this->getLanguage()->formatNum( $this->users ),
+                               array( 'class' => 'mw-statistics-users' )
+                       ) .
+                       $this->formatRow( $this->msg( 'statistics-users-active' )->parse() . ' ' .
+                               Linker::linkKnown(
+                                       SpecialPage::getTitleFor( 'Activeusers' ),
+                                       $this->msg( 'listgrouprights-members' )->escaped()
+                               ),
+                               $this->getLanguage()->formatNum( $this->activeUsers ),
+                               array( 'class' => 'mw-statistics-users-active' ),
+                               'statistics-users-active-desc',
+                               $this->getLanguage()->formatNum( $wgActiveUserDays )
+                       );
        }
 
        private function getGroupStats() {
@@ -267,7 +273,11 @@ class SpecialStatistics extends SpecialPage {
 
                if ( $res->numRows() > 0 ) {
                        $text .= Xml::openElement( 'tr' );
-                       $text .= Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-mostpopular' )->parse() );
+                       $text .= Xml::tags(
+                               'th',
+                               array( 'colspan' => '2' ),
+                               $this->msg( 'statistics-mostpopular' )->parse()
+                       );
                        $text .= Xml::closeElement( 'tr' );
 
                        foreach ( $res as $row ) {
@@ -308,7 +318,11 @@ class SpecialStatistics extends SpecialPage {
                                        $name = $this->msg( $key )->parse();
                                        $number = htmlspecialchars( $value );
 
-                                       $return .= $this->formatRow( $name, $this->getLanguage()->formatNum( $number ), array( 'class' => 'mw-statistics-hook', 'id' => 'mw-' . $key ) );
+                                       $return .= $this->formatRow(
+                                               $name,
+                                               $this->getLanguage()->formatNum( $number ),
+                                               array( 'class' => 'mw-statistics-hook', 'id' => 'mw-' . $key )
+                                       );
                                }
                        } else {
                                // Create the legacy header only once
@@ -317,7 +331,8 @@ class SpecialStatistics extends SpecialPage {
                                }
 
                                // Recursively remap the legacy structure
-                               $return .= $this->getOtherStats( array( 'statistics-header-hooks' => array( $header => $items ) ) );
+                               $return .= $this->getOtherStats( array( 'statistics-header-hooks' =>
+                                       array( $header => $items ) ) );
                        }
                }
 
index 17de679..9060f53 100644 (file)
  * Special page lists images which haven't been categorised
  *
  * @ingroup SpecialPage
+ * @todo FIXME: Use an instance of UncategorizedPagesPage or something
  */
-// @todo FIXME: Use an instance of UncategorizedPagesPage or something
 class UncategorizedImagesPage extends ImageQueryPage {
-
        function __construct( $name = 'Uncategorizedimages' ) {
                parent::__construct( $name );
        }
index c6a4215..8251d5b 100644 (file)
@@ -25,8 +25,8 @@
  * A special page looking for page without any category.
  *
  * @ingroup SpecialPage
+ * @todo FIXME: Make $requestedNamespace selectable, unify all subclasses into one
  */
-// @todo FIXME: Make $requestedNamespace selectable, unify all subclasses into one
 class UncategorizedPagesPage extends PageQueryPage {
        protected $requestedNamespace = false;
 
@@ -58,7 +58,9 @@ class UncategorizedPagesPage extends PageQueryPage {
                        // otherwise, page_namespace is requestedNamespace
                        'conds' => array(
                                'cl_from IS NULL',
-                               'page_namespace' => ( $this->requestedNamespace !== false ? $this->requestedNamespace : MWNamespace::getContentNamespaces() ),
+                               'page_namespace' => $this->requestedNamespace !== false
+                                               ? $this->requestedNamespace
+                                               : MWNamespace::getContentNamespaces(),
                                'page_is_redirect' => 0
                        ),
                        'join_conds' => array(
index acfeb37..55ab32d 100644 (file)
  * @ingroup SpecialPage
  */
 class PageArchive {
-       /**
-        * @var Title
-        */
+       /** @var Title */
        protected $title;
 
-       /**
-        * @var Status
-        */
+       /** @var Status */
        protected $fileStatus;
 
-       /**
-        * @var Status
-        */
+       /** @var Status */
        protected $revisionStatus;
 
        function __construct( $title ) {
@@ -355,16 +349,18 @@ class PageArchive {
         * Once restored, the items will be removed from the archive tables.
         * The deletion log will be updated with an undeletion notice.
         *
-        * @param array $timestamps Pass an empty array to restore all revisions, otherwise list the ones to undelete.
+        * @param array $timestamps Pass an empty array to restore all revisions,
+        *   otherwise list the ones to undelete.
         * @param string $comment
         * @param array $fileVersions
         * @param bool $unsuppress
         * @param User $user User performing the action, or null to use $wgUser
-        *
-        * @return array(number of file revisions restored, number of image revisions restored, log message)
-        * on success, false on failure
+        * @return array(number of file revisions restored, number of image revisions
+        *   restored, log message) on success, false on failure.
         */
-       function undelete( $timestamps, $comment = '', $fileVersions = array(), $unsuppress = false, User $user = null ) {
+       function undelete( $timestamps, $comment = '', $fileVersions = array(),
+               $unsuppress = false, User $user = null
+       ) {
                // If both the set of text revisions and file revisions are empty,
                // restore everything. Otherwise, just restore the requested items.
                $restoreAll = empty( $timestamps ) && empty( $fileVersions );
@@ -438,7 +434,8 @@ class PageArchive {
         * to the cur/old tables. If the page currently exists, all revisions will
         * be stuffed into old, otherwise the most recent will go into cur.
         *
-        * @param array $timestamps Pass an empty array to restore all revisions, otherwise list the ones to undelete.
+        * @param array $timestamps Pass an empty array to restore all revisions,
+        *   otherwise list the ones to undelete.
         * @param bool $unsuppress Remove all ar_deleted/fa_deleted restrictions of seletected revs
         * @param string $comment
         * @throws ReadOnlyError
@@ -638,7 +635,11 @@ class PageArchive {
                if ( $created || $wasnew ) {
                        // Update site stats, link tables, etc
                        $user = User::newFromName( $revision->getRawUserText(), false );
-                       $article->doEditUpdates( $revision, $user, array( 'created' => $created, 'oldcountable' => $oldcountable ) );
+                       $article->doEditUpdates(
+                               $revision,
+                               $user,
+                               array( 'created' => $created, 'oldcountable' => $oldcountable )
+                       );
                }
 
                wfRunHooks( 'ArticleUndelete', array( &$this->title, $created, $comment ) );
@@ -673,13 +674,20 @@ class PageArchive {
  * @ingroup SpecialPage
  */
 class SpecialUndelete extends SpecialPage {
-       var $mAction, $mTarget, $mTimestamp, $mRestore, $mInvert, $mFilename;
-       var $mTargetTimestamp, $mAllowed, $mCanView, $mComment, $mToken;
-
-       /**
-        * @var Title
-        */
-       var $mTargetObj;
+       private $mAction;
+       private $mTarget;
+       private $mTimestamp;
+       private $mRestore;
+       private $mInvert;
+       private $mFilename;
+       private $mTargetTimestamp;
+       private $mAllowed;
+       private $mCanView;
+       private $mComment;
+       private $mToken;
+
+       /** @var Title */
+       private $mTargetObj;
 
        function __construct() {
                parent::__construct( 'Undelete', 'deletedhistory' );
@@ -1288,14 +1296,25 @@ class SpecialUndelete extends SpecialPage {
                                Xml::label( $this->msg( 'undeletecomment' )->text(), 'wpComment' ) .
                                "</td>
                                <td class='mw-input'>" .
-                               Xml::input( 'wpComment', 50, $this->mComment, array( 'id' => 'wpComment', 'autofocus' => true ) ) .
+                               Xml::input(
+                                       'wpComment',
+                                       50,
+                                       $this->mComment,
+                                       array( 'id' => 'wpComment', 'autofocus' => true )
+                               ) .
                                "</td>
                        </tr>
                        <tr>
                                <td>&#160;</td>
                                <td class='mw-submit'>" .
-                               Xml::submitButton( $this->msg( 'undeletebtn' )->text(), array( 'name' => 'restore', 'id' => 'mw-undelete-submit' ) ) . ' ' .
-                               Xml::submitButton( $this->msg( 'undeleteinvert' )->text(), array( 'name' => 'invert', 'id' => 'mw-undelete-invert' ) ) .
+                               Xml::submitButton(
+                                       $this->msg( 'undeletebtn' )->text(),
+                                       array( 'name' => 'restore', 'id' => 'mw-undelete-submit' )
+                               ) . ' ' .
+                               Xml::submitButton(
+                                       $this->msg( 'undeleteinvert' )->text(),
+                                       array( 'name' => 'invert', 'id' => 'mw-undelete-invert' )
+                               ) .
                                "</td>
                        </tr>" .
                                $unsuppressBox .
@@ -1422,7 +1441,17 @@ class SpecialUndelete extends SpecialPage {
                $revdlink = Linker::getRevDeleteLink( $user, $rev, $this->mTargetObj );
 
                $revisionRow = $this->msg( 'undelete-revision-row' )
-                       ->rawParams( $checkBox, $revdlink, $last, $pageLink, $userLink, $minor, $revTextSize, $comment, $tagSummary )
+                       ->rawParams(
+                               $checkBox,
+                               $revdlink,
+                               $last,
+                               $pageLink,
+                               $userLink,
+                               $minor,
+                               $revTextSize,
+                               $comment,
+                               $tagSummary
+                       )
                        ->escaped();
 
                return Xml::tags( 'li', $attribs, $revisionRow ) . "\n";
@@ -1622,13 +1651,23 @@ class SpecialUndelete extends SpecialPage {
                // Show revision undeletion warnings and errors
                $status = $archive->getRevisionStatus();
                if ( $status && !$status->isGood() ) {
-                       $out->addWikiText( '<div class="error">' . $status->getWikiText( 'cannotundelete', 'cannotundelete' ) . '</div>' );
+                       $out->addWikiText( '<div class="error">' .
+                               $status->getWikiText(
+                                       'cannotundelete',
+                                       'cannotundelete'
+                               ) . '</div>'
+                       );
                }
 
                // Show file undeletion warnings and errors
                $status = $archive->getFileStatus();
                if ( $status && !$status->isGood() ) {
-                       $out->addWikiText( '<div class="error">' . $status->getWikiText( 'undelete-error-short', 'undelete-error-long' ) . '</div>' );
+                       $out->addWikiText( '<div class="error">' .
+                               $status->getWikiText(
+                                       'undelete-error-short',
+                                       'undelete-error-long'
+                               ) . '</div>'
+                       );
                }
        }
 
index c897332..713823b 100644 (file)
  * @ingroup SpecialPage
  */
 class UnusedCategoriesPage extends QueryPage {
+       function __construct( $name = 'Unusedcategories' ) {
+               parent::__construct( $name );
+       }
 
        function isExpensive() {
                return true;
        }
 
-       function __construct( $name = 'Unusedcategories' ) {
-               parent::__construct( $name );
-       }
-
        function getPageHeader() {
                return $this->msg( 'unusedcategoriestext' )->parseAsBlock();
        }
index f7e7a31..0c2b870 100644 (file)
@@ -30,7 +30,6 @@
  * @ingroup SpecialPage
  */
 class UnusedtemplatesPage extends QueryPage {
-
        function __construct( $name = 'Unusedtemplates' ) {
                parent::__construct( $name );
        }
index 521b361..4887daf 100644 (file)
@@ -39,37 +39,45 @@ class SpecialUpload extends SpecialPage {
        }
 
        /** Misc variables **/
-       public $mRequest; // The WebRequest or FauxRequest this form is supposed to handle
+
+       /** @var WebRequest|FauxRequest The request this form is supposed to handle */
+       public $mRequest;
        public $mSourceType;
 
-       /**
-        * @var UploadBase
-        */
+       /** @var UploadBase */
        public $mUpload;
 
-       /**
-        * @var LocalFile
-        */
+       /** @var LocalFile */
        public $mLocalFile;
        public $mUploadClicked;
 
        /** User input variables from the "description" section **/
-       public $mDesiredDestName; // The requested target file name
+
+       /** @var string The requested target file name */
+       public $mDesiredDestName;
        public $mComment;
        public $mLicense;
 
        /** User input variables from the root section **/
+
        public $mIgnoreWarning;
        public $mWatchthis;
        public $mCopyrightStatus;
        public $mCopyrightSource;
 
        /** Hidden variables **/
+
        public $mDestWarningAck;
-       public $mForReUpload; // The user followed an "overwrite this file" link
-       public $mCancelUpload; // The user clicked "Cancel and return to upload form" button
+
+       /** @var bool The user followed an "overwrite this file" link */
+       public $mForReUpload;
+
+       /** @var bool The user clicked "Cancel and return to upload form" button */
+       public $mCancelUpload;
        public $mTokenOk;
-       public $mUploadSuccessful = false; // Subclasses can use this to determine whether a file was uploaded
+
+       /** @var bool Subclasses can use this to determine whether a file was uploaded */
+       public $mUploadSuccessful = false;
 
        /** Text injection points for hooks not using HTMLForm **/
        public $uploadFormTextTop;
@@ -449,7 +457,14 @@ class SpecialUpload extends SpecialPage {
                } else {
                        $pageText = false;
                }
-               $status = $this->mUpload->performUpload( $this->mComment, $pageText, $this->mWatchthis, $this->getUser() );
+
+               $status = $this->mUpload->performUpload(
+                       $this->mComment,
+                       $pageText,
+                       $this->mWatchthis,
+                       $this->getUser()
+               );
+
                if ( !$status->isGood() ) {
                        $this->showUploadError( $this->getOutput()->parse( $status->getWikiText() ) );
 
@@ -464,13 +479,15 @@ class SpecialUpload extends SpecialPage {
 
        /**
         * Get the initial image page text based on a comment and optional file status information
-        * @param $comment string
-        * @param $license string
-        * @param $copyStatus string
-        * @param $source string
+        * @param string $comment
+        * @param string $license
+        * @param string $copyStatus
+        * @param string $source
         * @return string
         */
-       public static function getInitialPageText( $comment = '', $license = '', $copyStatus = '', $source = '' ) {
+       public static function getInitialPageText( $comment = '', $license = '',
+               $copyStatus = '', $source = ''
+       ) {
                global $wgUseCopyrightUpload, $wgForceUIMsgAsContentMsg;
 
                $msg = array();
@@ -890,23 +907,32 @@ class UploadForm extends HTMLForm {
                # Print a list of allowed file extensions, if so configured.  We ignore
                # MIME type here, it's incomprehensible to most people and too long.
                global $wgCheckFileExtensions, $wgStrictFileExtensions,
-                  $wgFileExtensions, $wgFileBlacklist;
+                       $wgFileExtensions, $wgFileBlacklist;
 
                if ( $wgCheckFileExtensions ) {
                        if ( $wgStrictFileExtensions ) {
                                # Everything not permitted is banned
                                $extensionsList =
                                        '<div id="mw-upload-permitted">' .
-                                       $this->msg( 'upload-permitted', $this->getContext()->getLanguage()->commaList( array_unique( $wgFileExtensions ) ) )->parseAsBlock() .
+                                       $this->msg(
+                                               'upload-permitted',
+                                               $this->getContext()->getLanguage()->commaList( array_unique( $wgFileExtensions ) )
+                                       )->parseAsBlock() .
                                        "</div>\n";
                        } else {
                                # We have to list both preferred and prohibited
                                $extensionsList =
                                        '<div id="mw-upload-preferred">' .
-                                               $this->msg( 'upload-preferred', $this->getContext()->getLanguage()->commaList( array_unique( $wgFileExtensions ) ) )->parseAsBlock() .
+                                               $this->msg(
+                                                       'upload-preferred',
+                                                       $this->getContext()->getLanguage()->commaList( array_unique( $wgFileExtensions ) )
+                                               )->parseAsBlock() .
                                        "</div>\n" .
                                        '<div id="mw-upload-prohibited">' .
-                                               $this->msg( 'upload-prohibited', $this->getContext()->getLanguage()->commaList( array_unique( $wgFileBlacklist ) ) )->parseAsBlock() .
+                                               $this->msg(
+                                                       'upload-prohibited',
+                                                       $this->getContext()->getLanguage()->commaList( array_unique( $wgFileBlacklist ) )
+                                               )->parseAsBlock() .
                                        "</div>\n";
                        }
                } else {
@@ -1072,7 +1098,8 @@ class UploadForm extends HTMLForm {
         * Add upload JS to the OutputPage
         */
        protected function addUploadJS() {
-               global $wgUseAjax, $wgAjaxUploadDestCheck, $wgAjaxLicensePreview, $wgEnableAPI, $wgStrictFileExtensions;
+               global $wgUseAjax, $wgAjaxUploadDestCheck, $wgAjaxLicensePreview,
+                       $wgEnableAPI, $wgStrictFileExtensions;
 
                $useAjaxDestCheck = $wgUseAjax && $wgAjaxUploadDestCheck;
                $useAjaxLicensePreview = $wgUseAjax && $wgAjaxLicensePreview && $wgEnableAPI;
index 16c348f..964bea1 100644 (file)
@@ -57,7 +57,8 @@ class SpecialUploadStash extends UnlistedSpecialPage {
        /**
         * Execute page -- can output a file directly or show a listing of them.
         *
-        * @param string $subPage subpage, e.g. in http://example.com/wiki/Special:UploadStash/foo.jpg, the "foo.jpg" part
+        * @param string $subPage subpage, e.g. in
+        *   http://example.com/wiki/Special:UploadStash/foo.jpg, the "foo.jpg" part
         * @return Boolean: success
         */
        public function execute( $subPage ) {
@@ -100,7 +101,8 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                        $message = $e->getMessage();
                } catch ( SpecialUploadStashTooLargeException $e ) {
                        $code = 500;
-                       $message = 'Cannot serve a file larger than ' . self::MAX_SERVE_BYTES . ' bytes. ' . $e->getMessage();
+                       $message = 'Cannot serve a file larger than ' . self::MAX_SERVE_BYTES .
+                               ' bytes. ' . $e->getMessage();
                } catch ( Exception $e ) {
                        $code = 500;
                        $message = $e->getMessage();
@@ -157,10 +159,11 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * @return boolean success
         */
        private function outputThumbFromStash( $file, $params ) {
-
-               // this global, if it exists, points to a "scaler", as you might find in the Wikimedia Foundation cluster. See outputRemoteScaledThumb()
-               // this is part of our horrible NFS-based system, we create a file on a mount point here, but fetch the scaled file from somewhere else that
-               // happens to share it over NFS
+               // this global, if it exists, points to a "scaler", as you might find in
+               // the Wikimedia Foundation cluster. See outputRemoteScaledThumb(). This
+               // is part of our horrible NFS-based system, we create a file on a mount
+               // point here, but fetch the scaled file from somewhere else that
+               // happens to share it over NFS.
                global $wgUploadStashScalerBaseUrl;
 
                $flags = 0;
@@ -172,16 +175,15 @@ class SpecialUploadStash extends UnlistedSpecialPage {
        }
 
        /**
-        * Scale a file (probably with a locally installed imagemagick, or similar) and output it to STDOUT.
+        * Scale a file (probably with a locally installed imagemagick, or similar)
+        * and output it to STDOUT.
         * @param $file File
         * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
         * @param int $flags Scaling flags ( see File:: constants )
-        * @throws MWException
-        * @throws UploadStashFileNotFoundException
+        * @throws MWException|UploadStashFileNotFoundException
         * @return boolean success
         */
        private function outputLocallyScaledThumb( $file, $params, $flags ) {
-
                // n.b. this is stupid, we insist on re-transforming the file every time we are invoked. We rely
                // on HTTP caching to ensure this doesn't happen.
 
@@ -209,22 +211,28 @@ class SpecialUploadStash extends UnlistedSpecialPage {
        }
 
        /**
-        * Scale a file with a remote "scaler", as exists on the Wikimedia Foundation cluster, and output it to STDOUT.
-        * Note: unlike the usual thumbnail process, the web client never sees the cluster URL; we do the whole HTTP transaction to the scaler ourselves
-        *  and cat the results out.
-        * Note: We rely on NFS to have propagated the file contents to the scaler. However, we do not rely on the thumbnail being created in NFS and then
-        *   propagated back to our filesystem. Instead we take the results of the HTTP request instead.
-        * Note: no caching is being done here, although we are instructing the client to cache it forever.
+        * Scale a file with a remote "scaler", as exists on the Wikimedia Foundation
+        * cluster, and output it to STDOUT.
+        * Note: Unlike the usual thumbnail process, the web client never sees the
+        * cluster URL; we do the whole HTTP transaction to the scaler ourselves
+        * and cat the results out.
+        * Note: We rely on NFS to have propagated the file contents to the scaler.
+        * However, we do not rely on the thumbnail being created in NFS and then
+        * propagated back to our filesystem. Instead we take the results of the
+        * HTTP request instead.
+        * Note: No caching is being done here, although we are instructing the
+        * client to cache it forever.
+        *
         * @param File $file
         * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
-        * @param $flags Scaling flags ( see File:: constants )
+        * @param int $flags Scaling flags ( see File:: constants )
         * @throws MWException
         * @return boolean success
         */
        private function outputRemoteScaledThumb( $file, $params, $flags ) {
-
-               // this global probably looks something like 'http://upload.wikimedia.org/wikipedia/test/thumb/temp'
-               // do not use trailing slash
+               // This global probably looks something like
+               // 'http://upload.wikimedia.org/wikipedia/test/thumb/temp'. Do not use
+               // trailing slash.
                global $wgUploadStashScalerBaseUrl;
                $scalerBaseUrl = $wgUploadStashScalerBaseUrl;
 
@@ -267,7 +275,8 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * Output HTTP response for file
         * Side effect: writes HTTP response to STDOUT.
         *
-        * @param $file File object with a local path (e.g. UnregisteredLocalFile, LocalFile. Oddly these don't share an ancestor!)
+        * @param File $file File object with a local path (e.g. UnregisteredLocalFile,
+        *   LocalFile. Oddly these don't share an ancestor!)
         * @throws SpecialUploadStashTooLargeException
         * @return bool
         */
@@ -303,7 +312,9 @@ class SpecialUploadStash extends UnlistedSpecialPage {
 
        /**
         * Output headers for streaming
-        * XXX unsure about encoding as binary; if we received from HTTP perhaps we should use that encoding, concatted with semicolon to mimeType as it usually is.
+        * @todo Unsure about encoding as binary; if we received from HTTP perhaps
+        * we should use that encoding, concatted with semicolon to mimeType as it
+        * usually is.
         * Side effect: preps PHP to write headers to STDOUT.
         * @param string $contentType String suitable for content-type header
         * @param string $size Length in bytes
@@ -398,4 +409,3 @@ class SpecialUploadStash extends UnlistedSpecialPage {
 
 class SpecialUploadStashTooLargeException extends MWException {
 }
-
index ec7bfa4..b049975 100644 (file)
@@ -27,7 +27,6 @@
  * @ingroup SpecialPage
  */
 class LoginForm extends SpecialPage {
-
        const SUCCESS = 0;
        const NO_NAME = 1;
        const ILLEGAL = 2;
@@ -43,26 +42,38 @@ class LoginForm extends SpecialPage {
        const NEED_TOKEN = 12;
        const WRONG_TOKEN = 13;
 
-       var $mUsername, $mPassword, $mRetype, $mReturnTo, $mCookieCheck, $mPosted;
-       var $mAction, $mCreateaccount, $mCreateaccountMail;
-       var $mLoginattempt, $mRemember, $mEmail, $mDomain, $mLanguage;
-       var $mSkipCookieCheck, $mReturnToQuery, $mToken, $mStickHTTPS;
-       var $mType, $mReason, $mRealName;
-       var $mAbortLoginErrorMsg = null;
+       public $mAbortLoginErrorMsg = null;
+
+       protected $mUsername;
+       protected $mPassword;
+       protected $mRetype;
+       protected $mReturnTo;
+       protected $mCookieCheck;
+       protected $mPosted;
+       protected $mAction;
+       protected $mCreateaccount;
+       protected $mCreateaccountMail;
+       protected $mLoginattempt;
+       protected $mRemember;
+       protected $mEmail;
+       protected $mDomain;
+       protected $mLanguage;
+       protected $mSkipCookieCheck;
+       protected $mReturnToQuery;
+       protected $mToken;
+       protected $mStickHTTPS;
+       protected $mType;
+       protected $mReason;
+       protected $mRealName;
+
        private $mTempPasswordUsed;
        private $mLoaded = false;
        private $mSecureLoginUrl;
 
-       /**
-        * @ var WebRequest
-        */
+       /** @var WebRequest */
        private $mOverrideRequest = null;
 
-       /**
-        * Effective request; set at the beginning of load
-        *
-        * @var WebRequest $mRequest
-        */
+       /** @var WebRequest Effective request; set at the beginning of load */
        private $mRequest = null;
 
        /**
@@ -107,10 +118,13 @@ class LoginForm extends SpecialPage {
                $this->mAction = $request->getVal( 'action' );
                $this->mRemember = $request->getCheck( 'wpRemember' );
                $this->mFromHTTP = $request->getBool( 'fromhttp', false );
-               $this->mStickHTTPS = ( !$this->mFromHTTP && $request->getProtocol() === 'https' ) || $request->getBool( 'wpForceHttps', false );
+               $this->mStickHTTPS = ( !$this->mFromHTTP && $request->getProtocol() === 'https' )
+                       || $request->getBool( 'wpForceHttps', false );
                $this->mLanguage = $request->getText( 'uselang' );
                $this->mSkipCookieCheck = $request->getCheck( 'wpSkipCookieCheck' );
-               $this->mToken = ( $this->mType == 'signup' ) ? $request->getVal( 'wpCreateaccountToken' ) : $request->getVal( 'wpLoginToken' );
+               $this->mToken = $this->mType == 'signup'
+                       ? $request->getVal( 'wpCreateaccountToken' )
+                       : $request->getVal( 'wpLoginToken' );
                $this->mReturnTo = $request->getVal( 'returnto', '' );
                $this->mReturnToQuery = $request->getVal( 'returntoquery', '' );
 
@@ -404,7 +418,12 @@ class LoginForm extends SpecialPage {
                }
 
                # Include checks that will include GlobalBlocking (Bug 38333)
-               $permErrors = $this->getPageTitle()->getUserPermissionsErrors( 'createaccount', $currentUser, true );
+               $permErrors = $this->getPageTitle()->getUserPermissionsErrors(
+                       'createaccount',
+                       $currentUser,
+                       true
+               );
+
                if ( count( $permErrors ) ) {
                        throw new PermissionsError( 'createaccount', $permErrors );
                }
@@ -414,8 +433,9 @@ class LoginForm extends SpecialPage {
                        return Status::newFatal( 'sorbs_create_account_reason' );
                }
 
-               // Normalize the name so that silly things don't cause "invalid username" errors.
-               // User::newFromName does some rather strict checking, rejecting e.g. leading/trailing/multiple spaces.
+               // Normalize the name so that silly things don't cause "invalid username"
+               // errors. User::newFromName does some rather strict checking, rejecting
+               // e.g. leading/trailing/multiple spaces.
                $title = Title::makeTitleSafe( NS_USER, $this->mUsername );
                if ( !is_object( $title ) ) {
                        return Status::newFatal( 'noname' );
@@ -487,7 +507,8 @@ class LoginForm extends SpecialPage {
 
                // Hook point to check for exempt from account creation throttle
                if ( !wfRunHooks( 'ExemptFromAccountCreationThrottle', array( $ip ) ) ) {
-                       wfDebug( "LoginForm::exemptFromAccountCreationThrottle: a hook allowed account creation w/o throttle\n" );
+                       wfDebug( "LoginForm::exemptFromAccountCreationThrottle: a hook " .
+                               "allowed account creation w/o throttle\n" );
                } else {
                        if ( ( $wgAccountCreationThrottle && $currentUser->isPingLimitable() ) ) {
                                $key = wfMemcKey( 'acctcreate', 'ip', $ip );
@@ -795,7 +816,7 @@ class LoginForm extends SpecialPage {
 
        function processLogin() {
                global $wgMemc, $wgLang, $wgSecureLogin, $wgPasswordAttemptThrottle,
-                          $wgInvalidPasswordReset;
+                       $wgInvalidPasswordReset;
 
                switch ( $this->authenticateUserData() ) {
                        case self::SUCCESS:
@@ -939,7 +960,9 @@ class LoginForm extends SpecialPage {
         * @param string $emailText message name of email text
         * @return Status object
         */
-       function mailPasswordInternal( $u, $throttle = true, $emailTitle = 'passwordremindertitle', $emailText = 'passwordremindertext' ) {
+       function mailPasswordInternal( $u, $throttle = true, $emailTitle = 'passwordremindertitle',
+               $emailText = 'passwordremindertext'
+       ) {
                global $wgNewPasswordExpiry;
 
                if ( $u->getEmail() == '' ) {
index d957e87..d65ac85 100644 (file)
@@ -27,7 +27,6 @@
  * @ingroup SpecialPage
  */
 class SpecialUserlogout extends UnlistedSpecialPage {
-
        function __construct() {
                parent::__construct( 'Userlogout' );
        }
index e0878f1..2a54ad7 100644 (file)
@@ -159,7 +159,9 @@ class UserrightsPage extends SpecialPage {
                                $targetUser->clearInstanceCache(); // bug 38989
                        }
 
-                       if ( $request->getVal( 'conflictcheck-originalgroups' ) !== implode( ',', $targetUser->getGroups() ) ) {
+                       if ( $request->getVal( 'conflictcheck-originalgroups' )
+                               !== implode( ',', $targetUser->getGroups() )
+                       ) {
                                $out->addWikiMsg( 'userrights-conflict' );
                        } else {
                                $this->saveUserGroups(
@@ -413,10 +415,25 @@ class UserrightsPage extends SpecialPage {
        function switchForm() {
                global $wgScript;
                $this->getOutput()->addHTML(
-                       Html::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript, 'name' => 'uluser', 'id' => 'mw-userrights-form1' ) ) .
+                       Html::openElement(
+                               'form',
+                               array(
+                                       'method' => 'get',
+                                       'action' => $wgScript,
+                                       'name' => 'uluser',
+                                       'id' => 'mw-userrights-form1'
+                               )
+                       ) .
                        Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() ) .
                        Xml::fieldset( $this->msg( 'userrights-lookup-user' )->text() ) .
-                       Xml::inputLabel( $this->msg( 'userrights-user-editname' )->text(), 'user', 'username', 30, str_replace( '_', ' ', $this->mTarget ), array( 'autofocus' => true ) ) . ' ' .
+                       Xml::inputLabel(
+                               $this->msg( 'userrights-user-editname' )->text(),
+                               'user',
+                               'username',
+                               30,
+                               str_replace( '_', ' ', $this->mTarget ),
+                               array( 'autofocus' => true )
+                       ) . ' ' .
                        Xml::submitButton( $this->msg( 'editusergroup' )->text() ) .
                        Html::closeElement( 'fieldset' ) .
                        Html::closeElement( 'form' ) . "\n"
@@ -485,9 +502,11 @@ class UserrightsPage extends SpecialPage {
                        $grouplist = $this->msg( 'userrights-groupsmember', $count, $user->getName() )->parse();
                        $grouplist = '<p>' . $grouplist . ' ' . $displayedList . "</p>\n";
                }
+
                $count = count( $autoList );
                if ( $count > 0 ) {
-                       $autogrouplistintro = $this->msg( 'userrights-groupsmember-auto', $count, $user->getName() )->parse();
+                       $autogrouplistintro = $this->msg( 'userrights-groupsmember-auto', $count, $user->getName() )
+                               ->parse();
                        $grouplist .= '<p>' . $autogrouplistintro . ' ' . $displayedAutolist . "</p>\n";
                }
 
@@ -499,13 +518,29 @@ class UserrightsPage extends SpecialPage {
                );
 
                $this->getOutput()->addHTML(
-                       Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getPageTitle()->getLocalURL(), 'name' => 'editGroup', 'id' => 'mw-userrights-form2' ) ) .
+                       Xml::openElement(
+                               'form',
+                               array(
+                                       'method' => 'post',
+                                       'action' => $this->getPageTitle()->getLocalURL(),
+                                       'name' => 'editGroup',
+                                       'id' => 'mw-userrights-form2'
+                               )
+                       ) .
                        Html::hidden( 'user', $this->mTarget ) .
                        Html::hidden( 'wpEditToken', $this->getUser()->getEditToken( $this->mTarget ) ) .
-                       Html::hidden( 'conflictcheck-originalgroups', implode( ',', $user->getGroups() ) ) . // Conflict detection
+                       Html::hidden(
+                               'conflictcheck-originalgroups',
+                               implode( ',', $user->getGroups() )
+                       ) . // Conflict detection
                        Xml::openElement( 'fieldset' ) .
-                       Xml::element( 'legend', array(), $this->msg( 'userrights-editusergroup', $user->getName() )->text() ) .
-                       $this->msg( 'editinguser' )->params( wfEscapeWikiText( $user->getName() ) )->rawParams( $userToolLinks )->parse() .
+                       Xml::element(
+                               'legend',
+                               array(),
+                               $this->msg( 'userrights-editusergroup', $user->getName() )->text()
+                       ) .
+                       $this->msg( 'editinguser' )->params( wfEscapeWikiText( $user->getName() ) )
+                               ->rawParams( $userToolLinks )->parse() .
                        $this->msg( 'userrights-groups-help', $user->getName() )->parse() .
                        $grouplist .
                        Xml::tags( 'p', null, $this->groupCheckboxes( $groups, $user ) ) .
@@ -523,7 +558,9 @@ class UserrightsPage extends SpecialPage {
                                        <td></td>
                                        <td class='mw-submit'>" .
                                                Xml::submitButton( $this->msg( 'saveusergroups' )->text(),
-                                                       array( 'name' => 'saveusergroups' ) + Linker::tooltipAndAccesskeyAttribs( 'userrights-set' ) ) .
+                                                       array( 'name' => 'saveusergroups' ) +
+                                                               Linker::tooltipAndAccesskeyAttribs( 'userrights-set' )
+                                               ) .
                                        "</td>
                                </tr>" .
                        Xml::closeElement( 'table' ) . "\n" .
@@ -608,8 +645,13 @@ class UserrightsPage extends SpecialPage {
                                continue;
                        }
                        // Messages: userrights-changeable-col, userrights-unchangeable-col
-                       $ret .= Xml::element( 'th', null, $this->msg( 'userrights-' . $name . '-col', count( $column ) )->text() );
+                       $ret .= Xml::element(
+                               'th',
+                               null,
+                               $this->msg( 'userrights-' . $name . '-col', count( $column ) )->text()
+                       );
                }
+
                $ret .= "</tr>\n<tr>\n";
                foreach ( $columns as $column ) {
                        if ( $column === array() ) {
@@ -647,7 +689,10 @@ class UserrightsPage extends SpecialPage {
                // $this->changeableGroups()['remove'] doesn't work, of course. Thanks, PHP.
                $groups = $this->changeableGroups();
 
-               return in_array( $group, $groups['remove'] ) || ( $this->isself && in_array( $group, $groups['remove-self'] ) );
+               return in_array(
+                       $group,
+                       $groups['remove'] ) || ( $this->isself && in_array( $group, $groups['remove-self'] )
+               );
        }
 
        /**
@@ -657,13 +702,21 @@ class UserrightsPage extends SpecialPage {
        private function canAdd( $group ) {
                $groups = $this->changeableGroups();
 
-               return in_array( $group, $groups['add'] ) || ( $this->isself && in_array( $group, $groups['add-self'] ) );
+               return in_array(
+                       $group,
+                       $groups['add'] ) || ( $this->isself && in_array( $group, $groups['add-self'] )
+               );
        }
 
        /**
         * Returns $this->getUser()->changeableGroups()
         *
-        * @return Array array( 'add' => array( addablegroups ), 'remove' => array( removablegroups ), 'add-self' => array( addablegroups to self ), 'remove-self' => array( removable groups from self ) )
+        * @return array array(
+        *   'add' => array( addablegroups ),
+        *   'remove' => array( removablegroups ),
+        *   'add-self' => array( addablegroups to self ),
+        *   'remove-self' => array( removable groups from self )
+        *  )
         */
        function changeableGroups() {
                return $this->getUser()->changeableGroups();
index 98b30b7..c8add01 100644 (file)
@@ -29,7 +29,6 @@
  * @ingroup SpecialPage
  */
 class SpecialVersion extends SpecialPage {
-
        protected $firstExtOpened = false;
 
        protected static $extensionTypes = false;
@@ -142,7 +141,11 @@ class SpecialVersion extends SpecialPage {
         * @return string
         */
        private static function getMediaWikiCredits() {
-               $ret = Xml::element( 'h2', array( 'id' => 'mw-version-license' ), wfMessage( 'version-license' )->text() );
+               $ret = Xml::element(
+                       'h2',
+                       array( 'id' => 'mw-version-license' ),
+                       wfMessage( 'version-license' )->text()
+               );
 
                // This text is always left-to-right.
                $ret .= '<div class="plainlinks">';
@@ -163,12 +166,15 @@ class SpecialVersion extends SpecialPage {
                global $wgLang;
 
                if ( defined( 'MEDIAWIKI_INSTALL' ) ) {
-                       $othersLink = '[//www.mediawiki.org/wiki/Special:Version/Credits ' . wfMessage( 'version-poweredby-others' )->text() . ']';
+                       $othersLink = '[//www.mediawiki.org/wiki/Special:Version/Credits ' .
+                               wfMessage( 'version-poweredby-others' )->text() . ']';
                } else {
-                       $othersLink = '[[Special:Version/Credits|' . wfMessage( 'version-poweredby-others' )->text() . ']]';
+                       $othersLink = '[[Special:Version/Credits|' .
+                               wfMessage( 'version-poweredby-others' )->text() . ']]';
                }
 
-               $translatorsLink = '[//translatewiki.net/wiki/Translating:MediaWiki/Credits ' . wfMessage( 'version-poweredby-translators' )->text() . ']';
+               $translatorsLink = '[//translatewiki.net/wiki/Translating:MediaWiki/Credits ' .
+                       wfMessage( 'version-poweredby-translators' )->text() . ']';
 
                $authorList = array(
                        'Magnus Manske', 'Brion Vibber', 'Lee Daniel Crocker',
@@ -205,7 +211,11 @@ class SpecialVersion extends SpecialPage {
                // Allow a hook to add/remove items.
                wfRunHooks( 'SoftwareInfo', array( &$software ) );
 
-               $out = Xml::element( 'h2', array( 'id' => 'mw-version-software' ), wfMessage( 'version-software' )->text() ) .
+               $out = Xml::element(
+                               'h2',
+                               array( 'id' => 'mw-version-software' ),
+                               wfMessage( 'version-software' )->text()
+                       ) .
                                Xml::openElement( 'table', array( 'class' => 'wikitable plainlinks', 'id' => 'sv-software' ) ) .
                                "<tr>
                                        <th>" . wfMessage( 'version-software-product' )->text() . "</th>
@@ -331,7 +341,8 @@ class SpecialVersion extends SpecialPage {
 
        /**
         * @since 1.22 Returns the HEAD date in addition to the sha1 and link
-        * @return bool|string wgVersion + HEAD sha1 stripped to the first 7 chars with link and date, or false on failure
+        * @return bool|string wgVersion + HEAD sha1 stripped to the first 7 chars
+        *   with link and date, or false on failure
         */
        private static function getVersionLinkedGit() {
                global $IP, $wgLang;
@@ -422,7 +433,11 @@ class SpecialVersion extends SpecialPage {
                 */
                wfRunHooks( 'SpecialVersionExtensionTypes', array( &$this, &$extensionTypes ) );
 
-               $out = Xml::element( 'h2', array( 'id' => 'mw-version-ext' ), $this->msg( 'version-extensions' )->text() ) .
+               $out = Xml::element(
+                               'h2',
+                               array( 'id' => 'mw-version-ext' ),
+                               $this->msg( 'version-extensions' )->text()
+                       ) .
                        Xml::openElement( 'table', array( 'class' => 'wikitable plainlinks', 'id' => 'sv-ext' ) );
 
                // Make sure the 'other' type is set to an array.
@@ -617,7 +632,12 @@ class SpecialVersion extends SpecialPage {
                        }
                }
 
-               $versionString = Html::rawElement( 'span', array( 'class' => 'mw-version-ext-version' ), $canonicalVersion );
+               $versionString = Html::rawElement(
+                       'span',
+                       array( 'class' => 'mw-version-ext-version' ),
+                       $canonicalVersion
+               );
+
                if ( $vcsVersion ) {
                        if ( $vcsLink ) {
                                $vcsVerString = Linker::makeExternalLink(
@@ -928,7 +948,8 @@ class SpecialVersion extends SpecialPage {
                                sort( $list );
                        }
 
-                       return $this->getLanguage()->listToText( array_map( array( __CLASS__, 'arrayToString' ), $list ) );
+                       return $this->getLanguage()
+                               ->listToText( array_map( array( __CLASS__, 'arrayToString' ), $list ) );
                }
        }
 
@@ -1093,7 +1114,11 @@ class SpecialVersion extends SpecialPage {
                        'dir' => $language->getDir(),
                        'lang' => $language->getCode()
                );
-               $out = Html::element( 'h2', array( 'id' => 'mw-version-entrypoints' ), $this->msg( 'version-entrypoints' )->text() ) .
+               $out = Html::element(
+                               'h2',
+                               array( 'id' => 'mw-version-entrypoints' ),
+                               $this->msg( 'version-entrypoints' )->text()
+                       ) .
                        Html::openElement( 'table',
                                array(
                                        'class' => 'wikitable plainlinks',
@@ -1103,8 +1128,16 @@ class SpecialVersion extends SpecialPage {
                                )
                        ) .
                        Html::openElement( 'tr' ) .
-                       Html::element( 'th', $thAttribures, $this->msg( 'version-entrypoints-header-entrypoint' )->text() ) .
-                       Html::element( 'th', $thAttribures, $this->msg( 'version-entrypoints-header-url' )->text() ) .
+                       Html::element(
+                               'th',
+                               $thAttribures,
+                               $this->msg( 'version-entrypoints-header-entrypoint' )->text()
+                       ) .
+                       Html::element(
+                               'th',
+                               $thAttribures,
+                               $this->msg( 'version-entrypoints-header-url' )->text()
+                       ) .
                        Html::closeElement( 'tr' );
 
                foreach ( $entryPoints as $message => $value ) {
index 550e2e3..a4b9dd8 100644 (file)
@@ -32,7 +32,6 @@
  * @ingroup SpecialPage
  */
 class WantedTemplatesPage extends WantedQueryPage {
-
        function __construct( $name = 'Wantedtemplates' ) {
                parent::__construct( $name );
        }
index 68a514c..dd9f262 100644 (file)
@@ -28,9 +28,6 @@
  * @ingroup SpecialPage
  */
 class SpecialWatchlist extends ChangesListSpecialPage {
-       /**
-        * Constructor
-        */
        public function __construct( $page = 'Watchlist', $restriction = 'viewmywatchlist' ) {
                parent::__construct( $page, $restriction );
        }
@@ -164,7 +161,8 @@ class SpecialWatchlist extends ChangesListSpecialPage {
 
                // Calculate cutoff
                if ( $opts['days'] > 0 ) {
-                       $conds[] = 'rc_timestamp > ' . $dbr->addQuotes( $dbr->timestamp( time() - intval( $opts['days'] * 86400 ) ) );
+                       $conds[] = 'rc_timestamp > ' .
+                               $dbr->addQuotes( $dbr->timestamp( time() - intval( $opts['days'] * 86400 ) ) );
                }
 
                return $conds;
@@ -518,7 +516,9 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $label = $this->msg( $value ? 'show' : 'hide' )->escaped();
                $options[$name] = 1 - (int)$value;
 
-               return $this->msg( $message )->rawParams( Linker::linkKnown( $this->getPageTitle(), $label, array(), $options ) )->escaped();
+               return $this->msg( $message )
+                       ->rawParams( Linker::linkKnown( $this->getPageTitle(), $label, array(), $options ) )
+                       ->escaped();
        }
 
        protected function hoursLink( $h, $options = array() ) {
@@ -534,7 +534,8 @@ class SpecialWatchlist extends ChangesListSpecialPage {
 
        protected function daysLink( $d, $options = array() ) {
                $options['days'] = $d;
-               $message = ( $d ? $this->getLanguage()->formatNum( $d ) : $this->msg( 'watchlistall2' )->escaped() );
+               $message = $d ? $this->getLanguage()->formatNum( $d )
+                       : $this->msg( 'watchlistall2' )->escaped();
 
                return Linker::linkKnown(
                        $this->getPageTitle(),
index 2e07309..0587649 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialWhatLinksHere extends IncludableSpecialPage {
-
-       /**
-        * @var FormOptions
-        */
+       /** @var FormOptions */
        protected $opts;
 
        protected $selfTitle;
 
-       /**
-        * @var Title
-        */
+       /** @var Title */
        protected $target;
 
        protected $limits = array( 20, 50, 100, 250, 500 );
@@ -89,7 +84,13 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
 
                $out->setPageTitle( $this->msg( 'whatlinkshere-title', $this->target->getPrefixedText() ) );
                $out->addBacklinkSubtitle( $this->target );
-               $this->showIndirectLinks( 0, $this->target, $opts->getValue( 'limit' ), $opts->getValue( 'from' ), $opts->getValue( 'back' ) );
+               $this->showIndirectLinks(
+                       0,
+                       $this->target,
+                       $opts->getValue( 'limit' ),
+                       $opts->getValue( 'from' ),
+                       $opts->getValue( 'back' )
+               );
        }
 
        /**
@@ -185,7 +186,10 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                        );
                }
 
-               if ( ( !$fetchlinks || !$plRes->numRows() ) && ( $hidetrans || !$tlRes->numRows() ) && ( $hideimages || !$ilRes->numRows() ) ) {
+               if ( ( !$fetchlinks || !$plRes->numRows() )
+                       && ( $hidetrans || !$tlRes->numRows() )
+                       && ( $hideimages || !$ilRes->numRows() )
+               ) {
                        if ( 0 == $level ) {
                                if ( !$this->including() ) {
                                        $out->addHTML( $this->whatlinkshereForm() );
@@ -323,12 +327,16 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                }
 
                if ( count( $props ) ) {
-                       $propsText = $this->msg( 'parentheses' )->rawParams( implode( $msgcache['semicolon-separator'], $props ) )->escaped();
+                       $propsText = $this->msg( 'parentheses' )
+                               ->rawParams( implode( $msgcache['semicolon-separator'], $props ) )->escaped();
                }
 
                # Space for utilities links, with a what-links-here link provided
                $wlhLink = $this->wlhLink( $nt, $msgcache['whatlinkshere-links'] );
-               $wlh = Xml::wrapClass( $this->msg( 'parentheses' )->rawParams( $wlhLink )->escaped(), 'mw-whatlinkshere-tools' );
+               $wlh = Xml::wrapClass(
+                       $this->msg( 'parentheses' )->rawParams( $wlhLink )->escaped(),
+                       'mw-whatlinkshere-tools'
+               );
 
                return $notClose ?
                        Xml::openElement( 'li' ) . "$link $propsText $dirmark $wlh\n" :
@@ -462,7 +470,8 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                        $types[] = 'hideimages';
                }
 
-               // Combined message keys: 'whatlinkshere-hideredirs', 'whatlinkshere-hidetrans', 'whatlinkshere-hidelinks', 'whatlinkshere-hideimages'
+               // Combined message keys: 'whatlinkshere-hideredirs', 'whatlinkshere-hidetrans',
+               // 'whatlinkshere-hidelinks', 'whatlinkshere-hideimages'
                // To be sure they will be found by grep
                foreach ( $types as $type ) {
                        $chosen = $this->opts->getValue( $type );
@@ -472,7 +481,10 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                                $this->makeSelfLink( $msg, array_merge( $changed, $overrides ) ) )->escaped();
                }
 
-               return Xml::fieldset( $this->msg( 'whatlinkshere-filters' )->text(), $this->getLanguage()->pipeList( $links ) );
+               return Xml::fieldset(
+                       $this->msg( 'whatlinkshere-filters' )->text(),
+                       $this->getLanguage()->pipeList( $links )
+               );
        }
 
        protected function getGroupName() {
index edb1558..e05faef 100644 (file)
@@ -55,7 +55,13 @@ class WithoutInterwikiPage extends PageQueryPage {
                        Html::openElement( 'fieldset' ) . "\n" .
                        Html::element( 'legend', null, $this->msg( 'withoutinterwiki-legend' )->text() ) . "\n" .
                        Html::hidden( 'title', $t->getPrefixedText() ) . "\n" .
-                       Xml::inputLabel( $this->msg( 'allpagesprefix' )->text(), 'prefix', 'wiprefix', 20, $prefix ) . "\n" .
+                       Xml::inputLabel(
+                               $this->msg( 'allpagesprefix' )->text(),
+                               'prefix',
+                               'wiprefix',
+                               20,
+                               $prefix
+                       ) . "\n" .
                        Xml::submitButton( $this->msg( 'withoutinterwiki-submit' )->text() ) . "\n" .
                        Html::closeElement( 'fieldset' ) . "\n" .
                        Html::closeElement( 'form' );
diff --git a/includes/title/MalformedTitleException.php b/includes/title/MalformedTitleException.php
new file mode 100644 (file)
index 0000000..4b14a19
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Representation of a page title within %MediaWiki.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+
+/**
+ * MalformedTitleException is thrown when a TitleParser is unable to parse a title string.
+ *
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+class MalformedTitleException extends Exception {
+
+}
diff --git a/includes/title/MediaWikiPageLinkRenderer.php b/includes/title/MediaWikiPageLinkRenderer.php
new file mode 100644 (file)
index 0000000..62ed4c2
--- /dev/null
@@ -0,0 +1,131 @@
+<?php
+/**
+ * A service for generating links from page titles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+
+/**
+ * A service for generating links from page titles.
+ *
+ * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
+ */
+class MediaWikiPageLinkRenderer implements PageLinkRenderer {
+
+       /**
+        * @var TitleFormatter
+        */
+       protected $formatter;
+
+       /**
+        * @var string
+        */
+       protected $baseUrl;
+
+       /**
+        * @note $formatter and $baseUrl are currently not used for generating links,
+        * since we still rely on the Linker class to generate the actual HTML.
+        * Once this is reversed so that  Linker becomes a legacy interface to
+        * HtmlPageLinkRenderer, we will be using them, so it seems prudent to
+        * already declare the dependency and inject them.
+        *
+        * @param TitleFormatter $formatter formatter for generating the target title string
+        * @param string $baseUrl (currently unused, pending refactoring of Linker).
+        *        Defaults to $wgArticlePath.
+        */
+       public function __construct( TitleFormatter $formatter, $baseUrl = null ) {
+               if ( $baseUrl === null ) {
+                       $baseUrl = $GLOBALS['wgArticlePath'];
+               }
+
+               $this->formatter = $formatter;
+               $this->baseUrl = $baseUrl;
+       }
+
+       /**
+        * Returns the (partial) URL for the given page (including any section identifier).
+        *
+        * @param TitleValue $page The link's target
+        * @param array $params any additional URL parameters.
+        *
+        * @return string
+        */
+       public function getPageUrl( TitleValue $page, $params = array() ) {
+               //TODO: move the code from Linker::linkUrl here!
+               //The below is just a rough estimation!
+
+               $name = $this->formatter->getPrefixedText( $page );
+               $name = str_replace( ' ', '_', $name );
+               $name = wfUrlencode( $name );
+
+               $url = $this->baseUrl . $name;
+
+               if ( $params ) {
+                       $separator = ( strpos( $url, '?' ) ) ? '&' : '?';
+                       $url .= $separator . wfArrayToCgi( $params );
+               }
+
+               $fragment = $page->getFragment();
+               if ( $fragment !== '' ) {
+                       $url = $url . '#' . wfUrlencode( $fragment );
+               }
+
+               return $url;
+       }
+
+       /**
+        * Returns an HTML link to the given page, using the given surface text.
+        *
+        * @param TitleValue $page The link's target
+        * @param string $text The link's surface text (will be derived from $page if not given).
+        *
+        * @return string
+        */
+       public function renderHtmlLink( TitleValue $page, $text = null ) {
+               if ( $text === null ) {
+                       $text = $this->formatter->getFullText( $page );
+               }
+
+               // TODO: move the logic implemented by Linker here,
+               // using $this->formatter and $this->baseUrl, and
+               // re-implement Linker to use a HtmlPageLinkRenderer.
+               $title = Title::newFromTitleValue( $page );
+               $link = Linker::link( $title, htmlspecialchars( $text ) );
+               return $link;
+       }
+
+       /**
+        * Returns a wikitext link to the given page, using the given surface text.
+        *
+        * @param TitleValue $page The link's target
+        * @param string $text The link's surface text (will be derived from $page if not given).
+        *
+        * @return string
+        */
+       public function renderWikitextLink( TitleValue $page, $text = null ) {
+               if ( $text === null ) {
+                       $text = $this->formatter->getFullText( $page );
+               }
+
+               $name = $this->formatter->getFullText( $page );
+
+               return '[[:' . $name . '|' . wfEscapeWikiText( $text ) . ']]';
+       }
+}
diff --git a/includes/title/MediaWikiTitleCodec.php b/includes/title/MediaWikiTitleCodec.php
new file mode 100644 (file)
index 0000000..878f95d
--- /dev/null
@@ -0,0 +1,391 @@
+<?php
+/**
+ * A codec for %MediaWiki page titles.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+
+/**
+ * A codec for %MediaWiki page titles.
+ *
+ * @note: Normalization and validation is applied while parsing, not when formatting.
+ * It's possible to construct a TitleValue with an invalid title, and use MediaWikiTitleCodec
+ * to generate an (invalid) title string from it. TitleValues should be constructed only
+ * via parseTitle() or from a (semi)trusted source, such as the database.
+ *
+ * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
+ */
+class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
+
+       /**
+        * @var Language
+        */
+       protected $language;
+
+       /**
+        * @var GenderCache
+        */
+       protected $genderCache;
+
+       /**
+        * @var string[]
+        */
+       protected $localInterwikis;
+
+       /**
+        * @param Language $language the language object to use for localizing namespace names.
+        * @param GenderCache $genderCache the gender cache for generating gendered namespace names
+        * @param string[]|string $localInterwikis
+        */
+       public function __construct( Language $language, GenderCache $genderCache, $localInterwikis = array() ) {
+               $this->language = $language;
+               $this->genderCache = $genderCache;
+               $this->localInterwikis = (array)$localInterwikis;
+       }
+
+       /**
+        * @see TitleFormatter::getNamespaceName()
+        *
+        * @param int $namespace
+        * @param string $text
+        *
+        * @throws InvalidArgumentException if the namespace is invalid
+        * @return String
+        */
+       public function getNamespaceName( $namespace, $text ) {
+               if ( $this->language->needsGenderDistinction() &&
+                       MWNamespace::hasGenderDistinction( $namespace ) ) {
+
+                       //NOTE: we are assuming here that the title text is a user name!
+                       $gender = $this->genderCache->getGenderOf( $text, __METHOD__ );
+                       $name = $this->language->getGenderNsText( $namespace, $gender );
+               } else {
+                       $name = $this->language->getNsText( $namespace );
+               }
+
+               if ( $name === false ) {
+                       throw new InvalidArgumentException( 'Unknown namespace ID: ' . $namespace );
+               }
+
+               return $name;
+       }
+
+       /**
+        * @see TitleFormatter::formatTitle()
+        *
+        * @param int|bool $namespace The namespace ID (or false, if the namespace should be ignored)
+        * @param string $text The page title. Should be valid. Only minimal normalization is applied.
+        *        Underscores will be replaced.
+        * @param string $fragment The fragment name (may be empty).
+        *
+        * @throws InvalidArgumentException if the namespace is invalid
+        * @return string
+        */
+       public function formatTitle( $namespace, $text, $fragment = '' ) {
+               if ( $namespace !== false ) {
+                       $namespace = $this->getNamespaceName( $namespace, $text );
+
+                       if ( $namespace !== '' ) {
+                               $text = $namespace . ':' . $text;
+                       }
+               }
+
+               if ( $fragment !== '' ) {
+                       $text = $text . '#' . $fragment;
+               }
+
+               $text = str_replace( '_', ' ', $text );
+
+               return $text;
+       }
+
+       /**
+        * Parses the given text and constructs a TitleValue. Normalization
+        * is applied according to the rules appropriate for the form specified by $form.
+        *
+        * @param string $text the text to parse
+        * @param int $defaultNamespace namespace to assume per default (usually NS_MAIN)
+        *
+        * @throws MalformedTitleException
+        * @return TitleValue
+        */
+       public function parseTitle( $text, $defaultNamespace ) {
+               // NOTE: this is an ugly cludge that allows this class to share the
+               // code for parsing with the old Title class. The parser code should
+               // be refactored to avoid this.
+               $parts = $this->splitTitleString( $text, $defaultNamespace );
+
+               // Interwiki links are not supported by TitleValue
+               if ( $parts['interwiki'] !== '' ) {
+                       throw new MalformedTitleException( 'Title must not contain an interwiki prefix: ' . $text );
+               }
+
+               // Relative fragment links are not supported by TitleValue
+               if ( $parts['dbkey'] === '' ) {
+                       throw new MalformedTitleException( 'Title must not be empty: ' . $text );
+               }
+
+               return new TitleValue( $parts['namespace'], $parts['dbkey'], $parts['fragment'] );
+       }
+
+       /**
+        * @see TitleFormatter::getText()
+        *
+        * @param TitleValue $title
+        *
+        * @return string $title->getText()
+        */
+       public function getText( TitleValue $title ) {
+               return $this->formatTitle( false, $title->getText(), '' );
+       }
+
+       /**
+        * @see TitleFormatter::getText()
+        *
+        * @param TitleValue $title
+        *
+        * @return string
+        */
+       public function getPrefixedText( TitleValue $title ) {
+               return $this->formatTitle( $title->getNamespace(), $title->getText(), '' );
+       }
+
+       /**
+        * @see TitleFormatter::getText()
+        *
+        * @param TitleValue $title
+        *
+        * @return string
+        */
+       public function getFullText( TitleValue $title ) {
+               return $this->formatTitle( $title->getNamespace(), $title->getText(), $title->getFragment() );
+       }
+
+       /**
+        * Normalizes and splits a title string.
+        *
+        * This function removes illegal characters, splits off the interwiki and
+        * namespace prefixes, sets the other forms, and canonicalizes
+        * everything.
+        *
+        * @todo: this method is only exposed as a temporary measure to ease refactoring.
+        * It was copied with minimal changes from Title::secureAndSplit().
+        *
+        * @todo: This method should be split up and an appropriate interface
+        * defined for use by the Title class.
+        *
+        * @param string $text
+        * @param int $defaultNamespace
+        *
+        * @throws MalformedTitleException If $text is not a valid title string.
+        * @return array A mapp with the fields 'interwiki', 'fragment', 'namespace',
+        *         'user_case_dbkey', and 'dbkey'.
+        */
+       public function splitTitleString( $text, $defaultNamespace = NS_MAIN ) {
+               $dbkey = str_replace( ' ', '_', $text );
+
+               # Initialisation
+               $parts = array(
+                       'interwiki' => '',
+                       'fragment' => '',
+                       'namespace' => $defaultNamespace,
+                       'dbkey' => $dbkey,
+                       'user_case_dbkey' => $dbkey,
+               );
+
+               # Strip Unicode bidi override characters.
+               # Sometimes they slip into cut-n-pasted page titles, where the
+               # override chars get included in list displays.
+               $dbkey = preg_replace( '/\xE2\x80[\x8E\x8F\xAA-\xAE]/S', '', $dbkey );
+
+               # Clean up whitespace
+               # Note: use of the /u option on preg_replace here will cause
+               # input with invalid UTF-8 sequences to be nullified out in PHP 5.2.x,
+               # conveniently disabling them.
+               $dbkey = preg_replace( '/[ _\xA0\x{1680}\x{180E}\x{2000}-\x{200A}\x{2028}\x{2029}\x{202F}\x{205F}\x{3000}]+/u', '_', $dbkey );
+               $dbkey = trim( $dbkey, '_' );
+
+               if ( strpos( $dbkey, UTF8_REPLACEMENT ) !== false ) {
+                       # Contained illegal UTF-8 sequences or forbidden Unicode chars.
+                       throw new MalformedTitleException( 'Bad UTF-8 sequences found in title: ' . $text );
+               }
+
+               $parts['dbkey'] = $dbkey;
+
+               # Initial colon indicates main namespace rather than specified default
+               # but should not create invalid {ns,title} pairs such as {0,Project:Foo}
+               if ( $dbkey !== '' && ':' == $dbkey[0] ) {
+                       $parts['namespace'] = NS_MAIN;
+                       $dbkey = substr( $dbkey, 1 ); # remove the colon but continue processing
+                       $dbkey = trim( $dbkey, '_' ); # remove any subsequent whitespace
+               }
+
+               if ( $dbkey == '' ) {
+                       throw new MalformedTitleException( 'Empty title: ' . $text );
+               }
+
+               # Namespace or interwiki prefix
+               $firstPass = true;
+               $prefixRegexp = "/^(.+?)_*:_*(.*)$/S";
+               do {
+                       $m = array();
+                       if ( preg_match( $prefixRegexp, $dbkey, $m ) ) {
+                               $p = $m[1];
+                               if ( ( $ns = $this->language->getNsIndex( $p ) ) !== false ) {
+                                       # Ordinary namespace
+                                       $dbkey = $m[2];
+                                       $parts['namespace'] = $ns;
+                                       # For Talk:X pages, check if X has a "namespace" prefix
+                                       if ( $ns == NS_TALK && preg_match( $prefixRegexp, $dbkey, $x ) ) {
+                                               if ( $this->language->getNsIndex( $x[1] ) ) {
+                                                       # Disallow Talk:File:x type titles...
+                                                       throw new MalformedTitleException( 'Bad namespace prefix: ' . $text );
+                                               } elseif ( Interwiki::isValidInterwiki( $x[1] ) ) {
+                                                       //TODO: get rid of global state!
+                                                       # Disallow Talk:Interwiki:x type titles...
+                                                       throw new MalformedTitleException( 'Interwiki prefix found in title: ' . $text );
+                                               }
+                                       }
+                               } elseif ( Interwiki::isValidInterwiki( $p ) ) {
+                                       if ( !$firstPass ) {
+                                               //TODO: get rid of global state!
+                                               # Can't make a local interwiki link to an interwiki link.
+                                               # That's just crazy!
+                                               throw new MalformedTitleException( 'Interwiki prefix found in title: ' . $text );
+                                       }
+
+                                       # Interwiki link
+                                       $dbkey = $m[2];
+                                       $parts['interwiki'] = $this->language->lc( $p );
+
+                                       # Redundant interwiki prefix to the local wiki
+                                       foreach ( $this->localInterwikis as $localIW ) {
+                                               if ( 0 == strcasecmp( $parts['interwiki'], $localIW ) ) {
+                                                       if ( $dbkey == '' ) {
+                                                               # Can't have an empty self-link
+                                                               throw new MalformedTitleException( 'Local interwiki with empty title: ' . $text );
+                                                       }
+                                                       $parts['interwiki'] = '';
+                                                       $firstPass = false;
+
+                                                       # Do another namespace split...
+                                                       continue 2;
+                                               }
+                                       }
+
+                                       # If there's an initial colon after the interwiki, that also
+                                       # resets the default namespace
+                                       if ( $dbkey !== '' && $dbkey[0] == ':' ) {
+                                               $parts['namespace'] = NS_MAIN;
+                                               $dbkey = substr( $dbkey, 1 );
+                                       }
+                               }
+                               # If there's no recognized interwiki or namespace,
+                               # then let the colon expression be part of the title.
+                       }
+                       break;
+               } while ( true );
+
+               $fragment = strstr( $dbkey, '#' );
+               if ( false !== $fragment ) {
+                       $parts['fragment'] = str_replace( '_', ' ', substr( $fragment, 1 ) );
+                       $dbkey = substr( $dbkey, 0, strlen( $dbkey ) - strlen( $fragment ) );
+                       # remove whitespace again: prevents "Foo_bar_#"
+                       # becoming "Foo_bar_"
+                       $dbkey = preg_replace( '/_*$/', '', $dbkey );
+               }
+
+               # Reject illegal characters.
+               $rxTc = Title::getTitleInvalidRegex();
+               if ( preg_match( $rxTc, $dbkey ) ) {
+                       throw new MalformedTitleException( 'Illegal characters found in title: ' . $text );
+               }
+
+               # Pages with "/./" or "/../" appearing in the URLs will often be un-
+               # reachable due to the way web browsers deal with 'relative' URLs.
+               # Also, they conflict with subpage syntax.  Forbid them explicitly.
+               if (
+                       strpos( $dbkey, '.' ) !== false &&
+                       (
+                               $dbkey === '.' || $dbkey === '..' ||
+                               strpos( $dbkey, './' ) === 0 ||
+                               strpos( $dbkey, '../' ) === 0 ||
+                               strpos( $dbkey, '/./' ) !== false ||
+                               strpos( $dbkey, '/../' ) !== false ||
+                               substr( $dbkey, -2 ) == '/.' ||
+                               substr( $dbkey, -3 ) == '/..'
+                       )
+               ) {
+                       throw new MalformedTitleException( 'Bad title: ' . $text );
+               }
+
+               # Magic tilde sequences? Nu-uh!
+               if ( strpos( $dbkey, '~~~' ) !== false ) {
+                       throw new MalformedTitleException( 'Bad title: ' . $text );
+               }
+
+               # Limit the size of titles to 255 bytes. This is typically the size of the
+               # underlying database field. We make an exception for special pages, which
+               # don't need to be stored in the database, and may edge over 255 bytes due
+               # to subpage syntax for long titles, e.g. [[Special:Block/Long name]]
+               if (
+                       ( $parts['namespace'] != NS_SPECIAL && strlen( $dbkey ) > 255 )
+                       || strlen( $dbkey ) > 512
+               ) {
+                       throw new MalformedTitleException( 'Title too long: ' . substr( $dbkey, 0, 255 ) . '...' );
+               }
+
+               # Normally, all wiki links are forced to have an initial capital letter so [[foo]]
+               # and [[Foo]] point to the same place.  Don't force it for interwikis, since the
+               # other site might be case-sensitive.
+               $parts['user_case_dbkey'] = $dbkey;
+               if ( $parts['interwiki'] === '' ) {
+                       $dbkey = Title::capitalize( $dbkey, $parts['namespace'] );
+               }
+
+               # Can't make a link to a namespace alone... "empty" local links can only be
+               # self-links with a fragment identifier.
+               if ( $dbkey == '' && $parts['interwiki'] === '' ) {
+                       if ( $parts['namespace'] != NS_MAIN ) {
+                               throw new MalformedTitleException( 'Empty title: ' . $text );
+                       }
+               }
+
+               // Allow IPv6 usernames to start with '::' by canonicalizing IPv6 titles.
+               // IP names are not allowed for accounts, and can only be referring to
+               // edits from the IP. Given '::' abbreviations and caps/lowercaps,
+               // there are numerous ways to present the same IP. Having sp:contribs scan
+               // them all is silly and having some show the edits and others not is
+               // inconsistent. Same for talk/userpages. Keep them normalized instead.
+               if ( $parts['namespace'] == NS_USER || $parts['namespace'] == NS_USER_TALK ) {
+                       $dbkey = IP::sanitizeIP( $dbkey );
+               }
+
+               // Any remaining initial :s are illegal.
+               if ( $dbkey !== '' && ':' == $dbkey[0] ) {
+                       throw new MalformedTitleException( 'Title must not start with a colon: ' . $text );
+               }
+
+               # Fill fields
+               $parts['dbkey'] = $dbkey;
+               return $parts;
+       }
+
+}
diff --git a/includes/title/PageLinkRenderer.php b/includes/title/PageLinkRenderer.php
new file mode 100644 (file)
index 0000000..240a961
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Represents a link rendering service for %MediaWiki.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+
+/**
+ * Represents a link rendering service for %MediaWiki.
+ *
+ * This is designed to encapsulate the knowledge about how page titles map to
+ * URLs, and how links are encoded in a given output format.
+ *
+ * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
+ */
+interface PageLinkRenderer {
+
+       /**
+        * Returns the URL for the given page.
+        *
+        * @todo expand this to cover the functionality of Linker::linkUrl
+        *
+        * @param TitleValue $page The link's target
+        * @param array $params any additional URL parameters.
+        *
+        * @return string
+        */
+       public function getPageUrl( TitleValue $page, $params = array() );
+
+       /**
+        * Returns an HTML link to the given page, using the given surface text.
+        *
+        * @todo expand this to cover the functionality of Linker::link
+        *
+        * @param TitleValue $page The link's target
+        * @param string $text The link's surface text (will be derived from $page if not given).
+        *
+        * @return string
+        */
+       public function renderHtmlLink( TitleValue $page, $text = null );
+
+       /**
+        * Returns a wikitext link to the given page, using the given surface text.
+        *
+        * @param TitleValue $page The link's target
+        * @param string $text The link's surface text (will be derived from $page if not given).
+        *
+        * @return string
+        */
+       public function renderWikitextLink( TitleValue $page, $text = null );
+
+}
diff --git a/includes/title/TitleFormatter.php b/includes/title/TitleFormatter.php
new file mode 100644 (file)
index 0000000..f3822b6
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+/**
+ * A title formatter service for %MediaWiki.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+
+/**
+ * A title formatter service for MediaWiki.
+ *
+ * This is designed to encapsulate knowledge about conventions for the title
+ * forms to be used in the database, in urls, in wikitext, etc.
+ *
+ * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
+ */
+interface TitleFormatter {
+
+       /**
+        * Returns the title formatted for display.
+        * Per default, this includes the namespace but not the fragment.
+        *
+        * @note Normalization is applied if $title is not in TitleValue::TITLE_FORM.
+        *
+        * @param int|bool $namespace The namespace ID (or false, if the namespace should be ignored)
+        * @param string $text The page title
+        * @param string $fragment The fragment name (may be empty).
+        *
+        * @return string
+        */
+       public function formatTitle( $namespace, $text, $fragment = '' );
+
+       /**
+        * Returns the title text formatted for display, without namespace of fragment.
+        *
+        * @note: Only minimal normalization is applied. Consider using TitleValue::getText() directly.
+        *
+        * @param TitleValue $title the title to format
+        *
+        * @return string
+        */
+       public function getText( TitleValue $title );
+
+       /**
+        * Returns the title formatted for display, including the namespace name.
+        *
+        * @param TitleValue $title the title to format
+        *
+        * @return string
+        */
+       public function getPrefixedText( TitleValue $title );
+
+       /**
+        * Returns the title formatted for display, with namespace and fragment.
+        *
+        * @param TitleValue $title the title to format
+        *
+        * @return string
+        */
+       public function getFullText( TitleValue $title );
+
+       /**
+        * Returns the name of the namespace for the given title.
+        *
+        * @note This must take into account gender sensitive namespace names.
+        * @todo Move this to a separate interface
+        *
+        * @param int $namespace
+        * @param string $text
+        *
+        * @throws InvalidArgumentException
+        * @return String
+        */
+       public function getNamespaceName( $namespace, $text );
+}
diff --git a/includes/title/TitleParser.php b/includes/title/TitleParser.php
new file mode 100644 (file)
index 0000000..b3ef479
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/**
+ * A title parser service for %MediaWiki.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+
+/**
+ * A title parser service for %MediaWiki.
+ *
+ * This is designed to encapsulate knowledge about conventions for the title
+ * forms to be used in the database, in urls, in wikitext, etc.
+ *
+ * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
+ */
+interface TitleParser {
+
+       /**
+        * Parses the given text and constructs a TitleValue. Normalization
+        * is applied according to the rules appropriate for the form specified by $form.
+        *
+        * @note this only parses local page links, interwiki-prefixes etc. are not considered!
+        *
+        * @param string $text the text to parse
+        * @param int $defaultNamespace namespace to assume per default (usually NS_MAIN)
+        *
+        * @throws MalformedTitleException If the text is not a valid representation of a page title.
+        * @return TitleValue
+        */
+       public function parseTitle( $text, $defaultNamespace );
+}
diff --git a/includes/title/TitleValue.php b/includes/title/TitleValue.php
new file mode 100644 (file)
index 0000000..06e9058
--- /dev/null
@@ -0,0 +1,162 @@
+<?php
+/**
+ * Representation of a page title within %MediaWiki.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @license GPL 2+
+ * @author Daniel Kinzler
+ */
+
+/**
+ * Represents a page (or page fragment) title within %MediaWiki.
+ *
+ * @note In contrast to Title, this is designed to be a plain value object. That is,
+ * it is immutable, does not use global state, and causes no side effects.
+ *
+ * @note TitleValue represents the title of a local page (or fragment of a page).
+ * It does not represent a link, and does not support interwiki prefixes etc.
+ *
+ * @see https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
+ */
+class TitleValue {
+
+       /**
+        * @var int
+        */
+       protected $namespace;
+
+       /**
+        * @var string
+        */
+       protected $dbkey;
+
+       /**
+        * @var string
+        */
+       protected $fragment;
+
+       /**
+        * Constructs a TitleValue.
+        *
+        * @note: TitleValue expects a valid DB key; typically, a TitleValue is constructed either
+        * from a database entry, or by a TitleParser. We could apply "some" normalization here,
+        * such as substituting spaces by underscores, but that would encourage the use of
+        * un-normalized text when constructing TitleValues. For constructing a TitleValue from
+        * user input or external sources, use a TitleParser.
+        *
+        * @param $namespace int The namespace ID. This is not validated.
+        * @param $dbkey string The page title in valid DBkey form. No normalization is applied.
+        * @param $fragment string The fragment title. Use '' to represent the whole page.
+        *        No validation or normalization is applied.
+        *
+        * @throws InvalidArgumentException
+        */
+       public function __construct( $namespace, $dbkey, $fragment = '' ) {
+               if ( !is_int( $namespace ) ) {
+                       throw new InvalidArgumentException( '$namespace must be an integer' );
+               }
+
+               if ( !is_string( $dbkey ) ) {
+                       throw new InvalidArgumentException( '$dbkey must be a string' );
+               }
+
+               // Sanity check, no full validation or normalization applied here!
+               if ( preg_match( '/^_|[ \r\n\t]|_$/', $dbkey ) ) {
+                       throw new InvalidArgumentException( '$dbkey must be a valid DB key: ' . $dbkey );
+               }
+
+               if ( !is_string( $fragment ) ) {
+                       throw new InvalidArgumentException( '$fragment must be a string' );
+               }
+
+               if ( $dbkey === '' ) {
+                       throw new InvalidArgumentException( '$dbkey must not be empty' );
+               }
+
+               $this->namespace = $namespace;
+               $this->dbkey = $dbkey;
+               $this->fragment = $fragment;
+       }
+
+       /**
+        * @return int
+        */
+       public function getNamespace() {
+               return $this->namespace;
+       }
+
+       /**
+        * @return string
+        */
+       public function getFragment() {
+               return $this->fragment;
+       }
+
+       /**
+        * Returns the title's DB key, as supplied to the constructor,
+        * without namespace prefix or fragment.
+        *
+        * @return string
+        */
+       public function getDBkey() {
+               return $this->dbkey;
+       }
+
+       /**
+        * Returns the title in text form,
+        * without namespace prefix or fragment.
+        *
+        * This is computed from the DB key by replacing any underscores with spaces.
+        *
+        * @note: To get a title string that includes the namespace and/or fragment,
+        *        use a TitleFormatter.
+        *
+        * @return string
+        */
+       public function getText() {
+               return str_replace( '_', ' ', $this->getDBkey() );
+       }
+
+       /**
+        * Creates a new TitleValue for a different fragment of the same page.
+        *
+        * @param string $fragment The fragment name, or "" for the entire page.
+        *
+        * @return TitleValue
+        */
+       public function createFragmentTitle( $fragment ) {
+               return new TitleValue( $this->namespace, $this->dbkey, $fragment );
+       }
+
+       /**
+        * Returns a string representation of the title, for logging. This is purely informative
+        * and must not be used programmatically. Use the appropriate TitleFormatter to generate
+        * the correct string representation for a given use.
+        *
+        * @return string
+        */
+       public function __toString() {
+               $name = $this->namespace . ':' . $this->dbkey;
+
+               if ( $this->fragment !== '' )  {
+                       $name .= '#' . $this->fragment;
+               }
+
+               return  $name;
+       }
+}
index 8885d0e..bc46111 100644 (file)
--- a/index.php
+++ b/index.php
@@ -40,9 +40,6 @@ if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.
        wfPHPVersionError( 'index.php' );
 }
 
-# Initialise common code.  This gives us access to GlobalFunctions, the
-# AutoLoader, and the globals $wgRequest, $wgOut, $wgUser, $wgLang and
-# $wgContLang, amongst others
 require __DIR__ . '/includes/WebStart.php';
 
 $mediaWiki = new MediaWiki();
index b3e40b6..b2ffe50 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of index.php to used in web server requiring .php5 extension
- * to execute scripts with PHP5 engine.
+ * Version of index.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index fa6e697..9c46ab1 100644 (file)
@@ -52,6 +52,7 @@
        'ar' => 'العربية',       # Arabic
        'arc' => 'ܐܪܡܝܐ',  # Aramaic
        'arn' => 'mapudungun',  # Mapuche, Mapudungu, Araucanian (Araucano)
+       'arq' => 'جزائري', # Algerian Spoken Arabic
        'ary' => 'Maġribi',    # Moroccan Spoken Arabic
        'arz' => 'مصرى',    # Egyptian Spoken Arabic
        'as' => 'অসমীয়া',        # Assamese
        'hil' => 'Ilonggo',     # Hiligaynon
        'ho' => 'Hiri Motu',    # Hiri Motu
        'hr' => 'hrvatski',             # Croatian
+       'hrx' => 'Hunsrik', # Riograndenser Hunsrückisch
        'hsb' => 'hornjoserbsce',       # Upper Sorbian
        'ht' => 'Kreyòl ayisyen',              # Haitian Creole French
        'hu' => 'magyar',               # Hungarian
index 7f1b62c..57e08e3 100644 (file)
@@ -863,8 +863,7 @@ walla [{{fullurl:{{FULLPAGENAME}}|action=edit}} tbaddel essafħa hedhi]</span>',
 'revdelete-no-file' => 'الملف المحدد غير موجود.',
 'revdelete-show-file-confirm' => 'هل أنت متأكد أنك تريد رؤية مراجعة محذوفة للملف "<nowiki>$1</nowiki>" بتاريخ $2 الساعة $3؟',
 'revdelete-show-file-submit' => 'نعم',
-'revdelete-selected' => "'''{{PLURAL:$2|المراجعة المختارة|المراجعات المختارة}} ل[[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:',
 'revdelete-confirm' => 'الإداريون الآخرون في {{SITENAME}} سيظل بإمكانهم رؤية المحتوى المخفي ويمكنهم استرجاعه مجددا من خلال هذه الواجهة نفسها، مالم يتم وضع قيود إضافية.
 من فضلك أكد أنك تنوي فعل هذا، وأنك تفهم العواقب، وأنك تفعل هذا بالتوافق مع [[{{MediaWiki:Policy-url}}|السياسة]].',
 'revdelete-suppress-text' => "الإخفاء ينبغي أن يتم استخدامه '''فقط''' في الحالات التالية:
index 741ceba..8716ed4 100644 (file)
@@ -914,7 +914,7 @@ of [{{fullurl:{{FULLPAGENAME}}|action=edit}} hierdie bladsy wysig]</span>.',
 'noarticletext-nopermission' => 'Hierdie bladsy bevat geen teks nie.
 U kan vir die term [[Special:Search/{{PAGENAME}}|in ander bladsye soek]] of
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} die verwante logboeke deursoek]</span>, maar u kan nie die bladsy skep nie.',
-'missing-revision' => 'Die weergawe #$1 van die bladsy "{{PAGENAME}} bestaan nie.
+'missing-revision' => 'Die weergawe #$1 van die bladsy "{{FULLPAGENAME}} bestaan nie.
 
 Dit word meestal veroorsaak deur die volg van \'n verouderde verwysing na \'n bladsy wat verwyder is.
 Meer gegewens kan moontlik in die [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} skraplogboek] gevind word.',
@@ -1140,8 +1140,7 @@ U kan wel hierdie verskil sien. Meer details kan in die [{{fullurl:{{#Special:Lo
 'revdelete-no-file' => 'Die gespesifiseerde lêer bestaan nie.',
 'revdelete-show-file-confirm' => 'Is u seker u wil die geskrapte weergawe van die lêer "<nowiki>$1</nowiki>" van $2 om $3 sien?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''Geselekteerde {{PLURAL:$2|wysiging|wysigings}} vir [[:$1]]:'''",
-'logdelete-selected' => "'''Geselekteerde {{PLURAL:$1|logboek aksie|logboek aksies}}:'''",
+'logdelete-selected' => 'Geselekteerde {{PLURAL:$1|logboek aksie|logboek aksies}}:',
 'revdelete-confirm' => 'Bevestig asseblief dat u dit wil doen, dat u die nagevolge verstaan en dat u dit doen in ooreenstemming met die [[{{MediaWiki:Policy-url}}|beleid]].',
 'revdelete-suppress-text' => "Verberging van weergawes mag '''slegs''' in die volgende gevalle gebruik word:
 * Potensieel lasterlike inligting
index 8957226..afed8ed 100644 (file)
@@ -792,8 +792,7 @@ Shiko tek [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} regjistr
 'revdelete-nooldid-title' => 'Version i dëshiruar i pavfleshëm',
 'revdelete-nooldid-text' => 'Ose nuk keni përcaktuar një version(e) të dëshiruar për veprimin, ose versioni nuk ekziston, ose po mundoheni të fshihni versionin e tanishëm.',
 'revdelete-no-file' => 'Skeda e dhënë nuk ekziston.',
-'revdelete-selected' => "'''{{PLURAL:$2|Versioni i zgjedhur i|Versionet e zgjedhura të}} [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Veprimi i zgjedhur në regjistër|Veprimet e zgjedhura në regjistër}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Veprimi i zgjedhur në regjistër|Veprimet e zgjedhura në regjistër}}:',
 'revdelete-legend' => 'Vendosni kufizimet për versionin:',
 'revdelete-hide-text' => 'Fshihe tekstin e versionit',
 'revdelete-hide-image' => 'Fshih përmbajtjen skedare',
index 1fd2405..054fa61 100644 (file)
@@ -728,8 +728,7 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'revdelete-nooldid-text' => 'ይህ ተግባር የሚፈጸምበት ግብ (አላማ) እትም አልወሰኑም።',
 'revdelete-no-file' => 'የተወሰነው ፋይል አይኖርም።',
 'revdelete-show-file-submit' => 'አዎን',
-'revdelete-selected' => "'''ከ [[:$1]] {{PLURAL:$2|የተመረጡ ዝርያዎች|የተመረጡ ዝርያዎች}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|የተመረጠ መዝገብ ድርጊት|የተመረጡ መዝገብ ድርጊቶች}}፦'''",
+'logdelete-selected' => '{{PLURAL:$1|የተመረጠ መዝገብ ድርጊት|የተመረጡ መዝገብ ድርጊቶች}}፦',
 'revdelete-hide-text' => 'የእትሙ ጽሕፈት ይደበቅ',
 'revdelete-hide-image' => 'የፋይሉ ይዞታ ይደበቅ',
 'revdelete-hide-name' => 'ድርጊትና ግቡ ይደበቅ',
index ddabe7c..2e8f162 100644 (file)
@@ -912,8 +912,7 @@ Encara puet veyer a comparanza; en trobará mas detalles en o [{{fullurl:{{#Spec
 'revdelete-no-file' => 'O fichero especificato no existe.',
 'revdelete-show-file-confirm' => 'Seguro que quiere veyer una versión borrata d\'o fichero "<nowiki>$1</nowiki>" d\'o $2 a las $3?',
 'revdelete-show-file-submit' => 'Sí',
-'revdelete-selected' => "'''{{PLURAL:$2|Versión trigata|Versions trigatas}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Escaicimiento d'o rechistro trigato|Escaicimientos d'o rechistro trigatos}}:'''",
+'logdelete-selected' => "{{PLURAL:$1|Escaicimiento d'o rechistro trigato|Escaicimientos d'o rechistro trigatos}}:",
 'revdelete-confirm' => "Por favor confirme que ye mirando de fer ísto, que entiende as conseqüencias, y que lo ye fendo d'alcuerdo con [[{{MediaWiki:Policy-url}}|as politicas]].",
 'revdelete-suppress-text' => "Os borraus de versions '''nomás''' s'habrían de fer en os siguients casos:
 * Información potencialment difamatoria o libelo grieu.
index 9f839fb..551345c 100644 (file)
@@ -1217,7 +1217,7 @@ $2
 أو [{{fullurl:{{FULLPAGENAME}}|action=edit}} تعديل هذه الصفحة]</span>.',
 'noarticletext-nopermission' => 'لا يوجد حاليا أي نص في هذه الصفحة.
 يمكنك [[Special:Search/{{PAGENAME}}|البحث عن عنوان هذه الصفحة]] في الصفحات الأخرى، أو <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} البحث في السجلات المتعلقة بها]</span>، لكنك لست مخولاً لإنشاء هذه الصفحة.',
-'missing-revision' => 'المراجعة #$1 من الصفحة المسماة "{{PAGENAME}}" غير موجودة.
+'missing-revision' => 'المراجعة #$1 من الصفحة المسماة "{{FULLPAGENAME}}" غير موجودة.
 
 هذا يحدث عادة عن طريق اتباع وصلة تاريخ قديمة لصفحة تم حذفها.
 التفاصيل يمكن إيجادها في [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سجل الحذف].',
@@ -1457,8 +1457,7 @@ $2
 'revdelete-no-file' => 'الملف المحدد غير موجود.',
 'revdelete-show-file-confirm' => 'هل أنت متأكد أنك تريد رؤية مراجعة محذوفة للملف "<nowiki>$1</nowiki>" بتاريخ $2 الساعة $3؟',
 'revdelete-show-file-submit' => 'نعم',
-'revdelete-selected' => "'''{{PLURAL:$2|المراجعة المختارة|المراجعات المختارة}} ل[[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:',
 'revdelete-confirm' => 'الإداريون الآخرون في {{SITENAME}} سيظل بإمكانهم رؤية المحتوى المخفي ويمكنهم استرجاعه مجددا من خلال هذه الواجهة نفسها، مالم يتم وضع قيود إضافية.
 من فضلك أكد أنك تنوي فعل هذا، وأنك تفهم العواقب، وأنك تفعل هذا بالتوافق مع [[{{MediaWiki:Policy-url}}|السياسة]].',
 'revdelete-suppress-text' => "ينبغي للإخفاء أن يستخدم '''فقط''' في الحالات التالية:
index 52ba387..613081b 100644 (file)
@@ -615,7 +615,6 @@ $1',
 'rev-showdeleted' => 'ܚܘܝ',
 'revisiondelete' => 'ܫܘܦ/ܠܐ ܫܘܦ ܬܢܝܬ̈ܐ',
 'revdelete-show-file-submit' => 'ܐܝܢ',
-'revdelete-selected' => "'''{{PLURAL:$2|ܬܢܝܬܐ ܓܒܝܬܐ|ܬܢܝܬ̈ܐ ܓܒܝܬܐ}} ܕ [[:$1]]:'''",
 'revdelete-hide-text' => 'ܟܬܒܬܐ ܕܬܢܝܬܐ',
 'revdelete-hide-image' => 'ܛܫܝ ܚܒܝܫܬ̈ܐ ܕܠܦܦܐ',
 'revdelete-hide-name' => 'ܛܫܝ ܥܒܕܐ ܘܢܘܦܐ',
diff --git a/languages/messages/MessagesArq.php b/languages/messages/MessagesArq.php
new file mode 100644 (file)
index 0000000..69dad23
--- /dev/null
@@ -0,0 +1,760 @@
+<?php
+/** Algerian Spoken Arabic (جزائري)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ * @author Bachounda
+ * @author Oldstoneage
+ */
+
+$fallback = 'ar';
+
+$messages = array(
+# User preference toggles
+'tog-underline' => 'تسطار الوصيلات:',
+'tog-hideminor' => 'خبي الكتيبات الصغيرة في التبديلات التوالا',
+'tog-hidepatrolled' => 'خبي الكتيبات المعسوسه في التبديلات التوالا',
+'tog-newpageshidepatrolled' => 'خبي الباجات المعسوسه اللي في ليستت الباجات الجدد',
+'tog-extendwatchlist' => 'دلي الليسته نتاع التبيعه باش تعرض كامل التبديلات و مشي برك التوالا',
+'tog-usenewrc' => 'اجمع الـتبدالات بل صفحات فل تبدالات الـتالية و الـليستة تاع الـمراقبة (تستحق الـ JavaScript)',
+'tog-numberheadings' => 'رقم اليا عناوين السكسيو',
+'tog-showtoolbar' => 'تبيان باره الكتيبات (يلزمها جافاسكريبت)',
+'tog-editondblclick' => 'كتيبت الباجات بالزوج دركات (يلزمها جافاسكربت)',
+'tog-editsectiononrightclick' => 'اكتيفي كتيبت السكسيوات بالدريك باليمين على العناوين نتاعهم(يتطلب جافاسكريبت)',
+'tog-rememberpassword' => 'اتفكر الدخول تاعي ب هاذ النافيكاتور (ب مدّة حدها{{PLURAL:$1||يوم واحد|يومين|$1 إيّام|$1 يوم}})',
+'tog-watchcreations' => 'زيد الـصفحات اللي نخلقها و الـفيشيّات فل قايمة تاع التتباع تاعي',
+'tog-watchdefault' => 'زيد الـصفحات و الـفيشيّات اللي نبدّلها فل قايمة تاع الـتتباع تاعي',
+'tog-watchmoves' => 'زيد الـصفحات و الـفيشيات اللي نحوّلها فل قايمة تاع الـتباع تاعي',
+'tog-watchdeletion' => 'زيد الـصفحات اللي نفصيها فل قايمة تاع التتباع تاعي',
+'tog-minordefault' => 'ماركي كل التبديلات بلي راهي خفيفه',
+'tog-previewontop' => 'وري شوفه-قبليه للكتبه فوق صندوق الكتيبه',
+'tog-previewonfirst' => 'بين شوفه-قبليه مع اول تبديله',
+'tog-enotifwatchlistpages' => 'ابحت لي إيمال كي تتبدّل صفحة ولا فيشي من الـليستة تاع الـتتباع تاعي',
+'tog-enotifusertalkpages' => 'ابعثلي بريه كل ما تبدلت باجت نقاش ديالي',
+'tog-enotifminoredits' => 'ابعت لي بريه حتا يلا كانت تبدالات صغيرة فلباجات و الـفيشيّات',
+'tog-enotifrevealaddr' => 'بين لادريستي إلكترونيك في براوات الاعلام',
+'tog-shownumberswatching' => 'بين شحال كاين من مستعمل يتبع الباجه',
+'tog-oldsig' => 'خطّ‘لـيدّ اللي كاين',
+'tog-fancysig' => 'اعتبر التوقيع كي كتيبه ويكي (بلا وصيله توماتيك)',
+'tog-uselivepreview' => 'استعمل الـنضرة الـقبلانيّة (تستحق الـ JavaScript) (تجرابيّة)',
+'tog-forceeditsummary' => 'نبّهني كي تندخل كاش صفحة خاوية',
+'tog-watchlisthideown' => 'خبّي الـتبدالات تاوعي فل ليستة تاع الـتتباع',
+'tog-watchlisthidebots' => 'خبّي الـتبدالات تاع الـروبويات فل ليستة تاع التتباع تاعي',
+'tog-watchlisthideminor' => 'خبّي الـتبدالات الـصغيرة من الـليستة تاعي تاع التتباع',
+'tog-watchlisthideliu' => 'خبّي فل قايمة تاع التتباع تاعي الـتبدالات الـمديورة من عند الـمستعمليين الـمتماركيين',
+'tog-watchlisthideanons' => 'خبّي فل قايمة تاع التتباع تاعي الـتبدالات الـمديورة من عند الـمستعمليين الـماشي متماركيين',
+'tog-watchlisthidepatrolled' => 'خبّي الـتبدالات تاع الـمتبّعة فل ليستة تاع التتباع تاعي',
+'tog-ccmeonemails' => 'ابعت لي نسخة تاع الـإيمالات الّي نبعتهم لل مستعمليين لخرين',
+'tog-diffonly' => 'ما تورّيش الـمضمون تاع الـصفحات تحت الـفروقات',
+'tog-showhiddencats' => 'ورّي الـفصلات الـمخبّيين',
+'tog-norollbackdiff' => 'ما تورّيش الـفروق كي تدير رجوع',
+'tog-useeditwarning' => 'نبّهني كي نخرج من صفحة كنت نكتب فيها بلا ما نعمّر الخدمة',
+'tog-prefershttps' => 'نستعمل دايمن توصال مأمون كي ندخل',
+
+'underline-always' => 'ديما',
+'underline-never' => 'ابدا',
+'underline-default' => 'الـقيمة الـعاديّة تاع الـواجهة و الـفلّاك',
+
+# Font style option in Special:Preferences
+'editfont-style' => 'بدّل الـستيل تاع الـكتبة فل قابسة تاع الـكتيبة',
+'editfont-default' => 'نوع‘ الـكتبة الـعادية فل فلّاك',
+'editfont-monospace' => 'الـعرض تاع الـحرف يكون تابت',
+'editfont-sansserif' => 'حروف بلا زوايد',
+'editfont-serif' => 'حروف بل زوايد',
+
+# Dates
+'sunday' => 'الحد',
+'monday' => 'لثنين',
+'tuesday' => 'التلاته',
+'wednesday' => 'لاربعه',
+'thursday' => 'الخميس',
+'friday' => 'الجمعه',
+'saturday' => 'السبت',
+'sun' => 'الحد',
+'mon' => 'لثنين',
+'tue' => 'الثلاثه',
+'wed' => 'لاربعه',
+'thu' => 'الخميس',
+'fri' => 'الجمعه',
+'sat' => 'السبت',
+'january' => 'جانفي',
+'february' => 'فيفري',
+'march' => 'مارس',
+'april' => 'أفريل',
+'may_long' => 'ماي',
+'june' => 'جوان',
+'july' => 'جويليي',
+'august' => 'أوت',
+'september' => 'سبتمبر',
+'october' => 'أكتوبر',
+'november' => 'نوفمبر',
+'december' => 'ديسمبر',
+'january-gen' => 'جانفي',
+'february-gen' => 'فيفري',
+'march-gen' => 'مارس',
+'april-gen' => 'أفريل',
+'may-gen' => 'ماي',
+'june-gen' => 'جوان',
+'july-gen' => 'جويليي',
+'august-gen' => 'أوت',
+'september-gen' => 'سبتمبر',
+'october-gen' => 'أكتوبر',
+'november-gen' => 'نوفمبر',
+'december-gen' => 'ديسمبر',
+'jan' => 'جانفي',
+'feb' => 'فيفري',
+'mar' => 'مارس',
+'apr' => 'أفريل',
+'may' => 'ماي',
+'jun' => 'جوان',
+'jul' => 'جويليي',
+'aug' => 'أوت',
+'sep' => 'سيبتمبر',
+'oct' => 'أوكتوبر',
+'nov' => 'نوفمبر',
+'dec' => 'ديسمبر',
+'january-date' => 'جانفيي $1',
+'february-date' => 'فيفريي $1',
+'march-date' => 'مارس $1',
+'april-date' => 'آفريل $1',
+'may-date' => 'ماي $1',
+'june-date' => 'جوان $1',
+'july-date' => 'جويليي$1',
+'august-date' => 'أوت $1',
+'september-date' => 'سبتامبر $1',
+'october-date' => 'اكتوبر $1',
+'november-date' => 'نوفامبر $1',
+'december-date' => 'ديسمبر $1',
+
+# Categories related messages
+'pagecategories' => '{{PLURAL:$1|فصيلة|فصيلات}}',
+'category_header' => 'الباجه في التصنيف "$1"',
+'subcategories' => 'تصنيفات تحتيه',
+'category-media-header' => 'فيشيي ميلتيميديا فالكاتيكورى  "$1"',
+'category-empty' => "''هاذ التصنيف ما فيهش لا باجات و لا ميلتيميديا.''",
+'hidden-categories' => '{{PLURAL:$1|تصنيف مدسوس|تصنيفات مدسوسة}}',
+'hidden-category-category' => 'تصنيفات مخبّية',
+'category-subcat-count' => '{{PLURAL:$2|هاذ التصنيف فيه التصنيف الفرعي التالي|هاذ التصنيف فيه{{PLURAL:$1||التصنيف الفرعي|$1 تصنيفات فرعية}}، من إجمالي $2.}}',
+'category-subcat-count-limited' => 'هاد الـتصنيف يسيع {{PLURAL:$1||التصنيف الفرعي التابع|التصنيفات الفرعية $1  التابعة}}.',
+'category-article-count' => 'هاذ الكاتيكورى فيها {{PLURAL:$2|هاذ الفيشيي|$2 الفيشيي, اللي{{PLURAL:$1|هاذ|نتع$1}} من تحتا}}.',
+'category-article-count-limited' => '{{PLURAL:$1||الصفحة التابعة|الـ $1 ‘ن صفحة التابعة}} مصنّفة ب هاذ التصنيف.',
+'category-file-count' => 'هاذ الكاتيكورى فيها {{PLURAL:$2|هاذ الفيشيي|$2 الفيشيي, اللي{{PLURAL:$1|هاذ|نتع$1}} من تحتا}}.',
+'category-file-count-limited' => '{{PLURAL:$1|الملف التابع مصنّف|الملفات الـ $1 التابعة مصنّفة}} ب هاذ التصنيف.',
+'listingcontinuesabbrev' => 'يُتبع',
+'index-category' => 'صفحات مفهّرسة',
+'noindex-category' => 'باجات مشي مفهرسه',
+'broken-file-category' => 'صفحات فيها وصيلات تاع ملفّات خاسرة',
+
+'about' => 'على هاذ الويكي',
+'article' => 'صفحة تاع محتوى',
+'newwindow' => '(حل في تاقة جديدة)',
+'cancel' => 'انيلي',
+'moredotdotdot' => 'كتر...',
+'morenotlisted' => 'كتر ماشي مليستي...',
+'mypage' => 'باجه',
+'mytalk' => 'نقاش',
+'anontalk' => 'تناقش على الـ ip هادي',
+'navigation' => 'تبحار',
+'and' => '&#32;و',
+
+# Cologne Blue skin
+'qbfind' => 'فتش',
+'qbbrowse' => 'اتجوّل فل مضمون',
+'qbedit' => 'اكتب',
+'qbpageoptions' => 'هاذ الباجه',
+'qbmyoptions' => 'الباجات نتاوعى',
+'faq' => 'المسقسية المتعاوده',
+'faqpage' => 'Project:سؤالات متكرره',
+
+# Vector skin
+'vector-action-addsection' => 'زيد موضوع',
+'vector-action-delete' => 'امحي',
+'vector-action-move' => 'حول',
+'vector-action-protect' => 'بروجي',
+'vector-action-undelete' => 'ردّ كيما كان',
+'vector-action-unprotect' => 'بدّل الـحماية',
+'vector-view-create' => 'أصنع',
+'vector-view-edit' => 'بدل',
+'vector-view-history' => 'روح للتاريخي',
+'vector-view-view' => 'أقرى',
+'vector-view-viewsource' => 'شوف المصدر',
+'actions' => 'أفعال',
+'namespaces' => 'بلاصه تع أسموات',
+'variants' => 'متغيرات',
+
+'navigation-heading' => 'القايمة تاع الـتبحار',
+'errorpagetitle' => 'غلطه',
+'returnto' => 'ولي إلى $1.',
+'tagline' => 'من{{SITENAME}}',
+'help' => 'معاونة',
+'search' => 'فتّش',
+'searchbutton' => 'فتش',
+'go' => 'شايع',
+'searcharticle' => 'روح',
+'history' => 'تاريخ الملف',
+'history_short' => 'تاريخ',
+'updatedmarker' => 'مبدّل منلي الزيارة تاعي الـتالية',
+'printableversion' => 'نسخه نتاع طبيع',
+'permalink' => 'وصيل دايم',
+'print' => 'امبريمي',
+'view' => 'اقرا',
+'edit' => 'بدل',
+'create' => 'أصنع',
+'editthispage' => 'بدّل هاد الـصفحة',
+'create-this-page' => 'خلّق صفحة ب هاد الـعلوان',
+'delete' => 'امحي',
+'deletethispage' => 'امحي هاد الـصفحة',
+'undeletethispage' => 'ردّ الصفحة الّي محيتها',
+'protect' => 'حمايه',
+'protect_change' => 'بدل',
+'newpage' => 'باجه جديده',
+'talkpagelinktext' => 'ناقش',
+'personaltools' => 'ادوالت شخصيه',
+'talk' => 'مناقشه',
+'views' => 'شوفات',
+'toolbox' => 'صندوق الادوات',
+'otherlanguages' => 'بلوغات وحد اوخره',
+'redirectedfrom' => '(محول من $1)',
+'lastmodifiedat' => 'هاد الباجه راهي تبدّلت نهار الـ $1, على الـساعة $2.',
+'jumpto' => 'اقفز ل:',
+'jumptonavigation' => 'تجوال',
+'jumptosearch' => 'تفتاش',
+
+# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
+'aboutsite' => 'على{{SITENAME}}',
+'aboutpage' => 'Project:على',
+'copyrightpage' => '{{ns:project}}:حقوق النسخ',
+'currentevents' => 'الخبورات',
+'currentevents-url' => 'Project:خبورات',
+'disclaimers' => 'تنبيهات',
+'disclaimerpage' => 'Project:التحذيرات العامه',
+'edithelp' => 'معونة',
+'mainpage' => 'الباجة اللوله',
+'mainpage-description' => 'الباجة اللوله',
+'portal' => 'المجتمع',
+'portal-url' => 'Project:بورطاي المجتمع',
+'privacy' => 'السياسة تاع الخصوصيات (الدين الضيّق)',
+'privacypage' => 'Project:خصوصيه',
+
+'retrievedfrom' => 'جايبينه من "$1"',
+'youhavenewmessages' => 'عندك $1 ($2).',
+'editsection' => 'بدل',
+'editold' => 'بدل',
+'viewsourceold' => 'شوف الاصل',
+'editlink' => 'تبديل',
+'viewsourcelink' => 'شوف العين',
+'editsectionhint' => 'إيديتي الصنف:$1',
+'toc' => 'محتويات',
+'site-rss-feed' => 'تيار آر‌إس‌إس $1',
+'site-atom-feed' => '$1 تيار آتوم',
+'page-atom-feed' => '$1 تيار آتوم',
+'red-link-title' => '$1 (الباجه ما كاينش)',
+
+# Short words for each namespace, by default used in the namespace tab in monobook
+'nstab-main' => 'الباجة',
+'nstab-user' => 'باجة{{GENDER:{{BASEPAGENAME}}|المستخدم|المستخدمة}}',
+'nstab-special' => 'باجه خوصوصيّة',
+'nstab-project' => 'باجه مشروع',
+'nstab-image' => 'ملف',
+'nstab-template' => 'مودال',
+'nstab-category' => 'تصنيف',
+
+# General errors
+'missing-article' => 'الداتاباز ما صابتش باجه كان لازم تنصاب، الباجه هي "$1" $2.
+
+نورمالمو يصرا هذا مين اتبع فرق بيريمي والا وصيل تأريخ باجة ممحيه.
+
+إذا ما كانش هذا هو الحال همالا راك طحت في علة تاع البرمجية.
+من فضلك سينياليها لواحد من[[Special:ListUsers/sysop|الإداريين]]، و أعطه مسار هذه الباجه.',
+'missingarticle-rev' => '(رقم الفرسيون: $1)',
+'badtitle' => 'عنوان عيان',
+'badtitletext' => 'عنوان الباجه المطلوب إما ماشي صحيح والا فارغ، وبالاك الوصيل بين اللغات والا بين البروجيات ماشي صحيح.
+بالاك فيه حروف ما تصلحش  باس يستعملوها فالعناوين.',
+'viewsource' => 'شوف الاصل',
+
+# Login and logout pages
+'yourname' => 'اسم المستخدم:',
+'yourpassword' => 'كلمة السر:',
+'yourpasswordagain' => 'عاود كتبت كلمت السر:',
+'remembermypassword' => 'اتفكر الدخول تاعي ب هاذ النافيكاتور (ب مدّة حدها{{PLURAL:$1||يوم واحد|يومين|$1 إيّام|$1 يوم}})',
+'login' => 'كونكسيون',
+'nav-login-createaccount' => 'تسجل/ اصنع حساب',
+'loginprompt' => 'لازم تكون الكوكيز لديك ماكتيفيه باش تكونيكتي و تدخل ل{{SITENAME}}.',
+'userlogin' => 'تسجل/ اصنع حساب',
+'userlogout' => 'سجل خروج',
+'nologin' => "ما عندكش حساب مسجل؟ '''$1'''.",
+'nologinlink' => 'اصنع حساب',
+'createaccount' => 'اصنع حساب',
+'gotaccount' => "عندك حساب مسجل؟ '''$1'''.",
+'gotaccountlink' => 'كونكسيون',
+'userlogin-resetlink' => 'نسيت تفاصيل الدخول؟',
+'mailmypassword' => 'أرسل لي كلمة سر جديده',
+'loginlanguagelabel' => 'اللوغه: $1',
+
+# Edit page toolbar
+'bold_sample' => 'كتيبة غليظه',
+'bold_tip' => 'كتيبة غليظه',
+'italic_sample' => 'كتبة مايلة',
+'italic_tip' => 'نص مايل',
+'link_sample' => 'عنوان وصيلة',
+'link_tip' => 'وصيلة داخليه',
+'extlink_sample' => 'http://www.example.com اسم الوصيلة',
+'extlink_tip' => 'وصيلة برانية (ما تنساش البديةhttp://)',
+'headline_sample' => 'كتبة نتاع عنوان كبير',
+'headline_tip' => 'عنوان من المستوى الثاني',
+'nowiki_sample' => 'دخل الكتبة مشي مستفة هنا',
+'nowiki_tip' => 'اهمل طريقةالويكي',
+'image_tip' => 'ملف داخل',
+'media_tip' => 'وصيلة ملف',
+'sig_tip' => 'سنياتورتك بالساعة و التاريخ',
+'hr_tip' => 'خط أفقي (ما تستعملوش بزاف)',
+
+# Edit pages
+'summary' => 'ملخص:',
+'minoredit' => 'هذي تبديلة صغيرة',
+'watchthis' => 'تبع الباجة',
+'savearticle' => 'سجل الباجة',
+'preview' => 'شوفه-قبلي',
+'showpreview' => 'بين معاينة',
+'showdiff' => 'عرض التبديلات',
+'anoneditwarning' => "'''توله:''' راك ما دخلتش.
+غادي يتسجل لادراس آيبي نتاعك في تاريخ هذه الباجه.",
+'newarticle' => '(جديد)',
+'newarticletext' => "راك تبعت وصيلة لباجه لم ما تخدمتش بعد.
+باش تصنع هاذ الباجه ابدا الكتبه فالصندوق التحت (شوف في [$1  زياده باجه المساعده] لمعلومات).
+إذا كانت زيارتك لهاذ الباجه غلطه، ادرك على بوطون''ولى'' في نافيقاتور الإنترنت نتاعك.",
+'noarticletext' => 'لحد الساعه ما كانش حتى نص في هاذ الباجه.
+تقدرو [[Special:Search/{{PAGENAME}}|ترميو تفتيشه على هاذ العنوان]] فالباجات لخرين,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} فتش فالعمليات المربوطه]
+و إلا[{{fullurl:{{FULLPAGENAME}}|action=edit}} أصنع هاذ الباجه]</span>.',
+'noarticletext-nopermission' => 'لحد الساعه ما كانش حتى نص في هاذ الباجه.
+تقدرو [[Special:Search/{{PAGENAME}}|ترميو تفتيشه على هاذ العنوان]] فالباجات لخرين,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} فتش فالعمليات المربوطه]
+و إلا[{{fullurl:{{FULLPAGENAME}}|action=edit}} أصنع هاذ الباجه]</span>.',
+'previewnote' => "'''ما تنساش هذي معاينه قبليه.'''
+لدوك التبديلات دياولك ما تسجلوش!",
+'editing' => 'تحرير $1',
+'editingsection' => 'كتيبه $1 (قسم)',
+'templatesused' => '{{PLURAL:$1||القالب المستعمل|القوالب المستعمله}} في هذه الباجه:',
+'template-protected' => '(محميه)',
+'template-semiprotected' => '(نص حماية )',
+'hiddencategories' => '{{PLURAL:$1|هاد الصفحة ما كايناش فل تصانف المخبّييين|هاد الصفحة كاينة في تصنيف مخبّي واحد|هاد الصفحة كاينة في زوج تاع الـتصانف المخبّيين|هاد الصفحة كاينة في $1 تصنيف مخبّي|هاد الصفحة كاينة في $1 تصنيف مخفبّي|هذه الصفحة كاينة في $1 تصنيف مخبّي}}:',
+'permissionserrorstext-withaction' => 'ما راكش اوتوريزى ل$2، لل{{PLURAL:$1||سبب هاذا|اسباب هاذي}}:',
+'recreate-moveddeleted-warn' => "'''توليه: راك تعاود تصنع باحه اتمحات من قبل.'''
+
+لازم تتأكد بلى الباجه الا نصنعت ماهوش مشكل الا كملت الكتبه فبها.
+ريجيستر المحو و النقل معروض هنا باش تراقب :",
+'moveddeleted-notice' => 'هاذ الباجه تمحات .
+ريجيستر المحو والتنقال للباجه معروضين التحت كريفيرونس.',
+
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => "'''توليه:''' الباجة داخل فيها قوالب بزاف.
+شي قوالب ما غاديش تدخل.",
+'post-expand-template-inclusion-category' => 'الباجات داخل فيها بزاف القوالب',
+'post-expand-template-argument-warning' => "'''توليه:''' هذه الباجه فيها عامل قالب واحد على الأقل عندو حجم تمدد كبير بزاف.
+هاذالعوامل اتمحات.",
+'post-expand-template-argument-category' => 'باجات فيها مدخلات القالب الممحي',
+
+# History pages
+'viewpagelogs' => 'بين العمليات على هاذ الباحه',
+'currentrev-asof' => 'النسخه نتاع دروك تاريجها $1',
+'revisionasof' => 'معاودة تاع الـ $1',
+'revision-info' => 'مراجعه $1 بواسطت $2',
+'previousrevision' => '← نسخة اللوله',
+'nextrevision' => 'فرسيون جايه←',
+'currentrevisionlink' => 'المراجعه الحاليه',
+'cur' => 'الحالي',
+'last' => 'السابق',
+'histlegend' => 'تخيار الفرق: علم على صناديق النسخ للمقارنه و ادرك قارن بين النسخ المختارة والا القفلة التحت .<br />
+مفتاح: (الحالي) = الفرق مع النسخة تع دروك
+(الفايته) = الفرق مع النسخة اللي فاتت، ط = تبديل خفيف',
+'history-fieldset-title' => 'نافيقي في التاريخ',
+'history-show-deleted' => 'المماسكيه برك',
+'histfirst' => 'اول باجه',
+'histlast' => 'باجه تاليه',
+
+# Revision feed
+'history-feed-item-nocomment' => '$1 إلى $2',
+
+# Revision deletion
+'rev-delundel' => 'بين/خبي',
+'revdel-restore' => 'غير كيف راهي تبان',
+
+# Merge log
+'revertmerge' => 'فرق',
+
+# Diffs
+'history-title' => ' «$1»: تاريخ المراجعات',
+'lineno' => 'سطر$1:',
+'compareselectedversions' => 'كومباري بين نسختين مخيرين',
+'editundo' => 'نحي',
+
+# Search results
+'searchresults' => 'ريزيلته نتاع التفتاش',
+'searchresults-title' => 'ريزيلته تاع التحواس "$1"',
+'prevn' => '{{PLURAL:$1|précédente|$1 اللولانيين}}',
+'nextn' => '{{PLURAL:$1|suivante|$1 التاليين}}',
+'prevn-title' => '$1 {{PLURAL:$1|النتيجة التالية|النتايج التواله}}',
+'nextn-title' => '$1 {{PLURAL:$1|النتيجة الجاية|النتايج الجايين}}',
+'shown-title' => 'آفيشي $1 {{PLURAL:$1|نتيجة}} فل صفحة',
+'viewprevnext' => 'شوف($1 {{int:pipe-separator}} $2) ($3).',
+'searchmenu-exists' => "'''كاين باجه اسمها « [[:$1]] » في هاذ الويكي'''",
+'searchmenu-new' => "'''أصنع الباجه « [[:$1|$1]] » في هذ الويكي !'''",
+'searchprofile-articles' => 'باجه تع محتوى',
+'searchprofile-project' => 'باجه تع المعونه و البروجي',
+'searchprofile-images' => 'ميلتيميديا',
+'searchprofile-everything' => 'كلش',
+'searchprofile-advanced' => 'تفتاش متقدم',
+'searchprofile-articles-tooltip' => 'فتش في $1',
+'searchprofile-project-tooltip' => 'فتش في  $1',
+'searchprofile-images-tooltip' => 'فتش على ملفات ميلتيميديا',
+'searchprofile-everything-tooltip' => 'فتش في قاع السيت (حتى في باجات المناقشه)',
+'searchprofile-advanced-tooltip' => 'خير إسباسات الأسامي للتفتاش',
+'search-result-size' => '$1 ({{PLURAL:$2|1 كلمة|$2 كلمات}})',
+'search-result-category-size' => '$1 عضو{{PLURAL:$1||s}} ($2 كاتيكورى فرعيه{{PLURAL:$2||s}}, $3 فيشيي{{PLURAL:$3||يات}})',
+'search-redirect' => '(تحويل من $1)',
+'search-section' => '(قسمت‘ $1)',
+'search-suggest' => 'كنت باغي تقول: $1',
+'searchrelated' => 'مرتابطه',
+'searchall' => 'ألكل',
+'showingresultsheader' => "{{PLURAL:$5|نتيجه'''$1'''|نتايج'''$1–$2'''}} تع'''$3''' لـ'''$4'''",
+'search-nonefound' => 'ما كانش نتائج تطابق المسقسية.',
+
+# Preferences page
+'mypreferences' => 'إختيارات',
+'youremail' => 'البريه الالكترونيه:',
+'yourrealname' => 'الاسم الحقاني:',
+'prefs-help-email' => 'لادريس نتع البريه الإلكترونيه بالخاطر، ولكن هي لازمه في حال نسيت كلمت السر نتاعك.',
+'prefs-help-email-others' => 'تقدر تاني تخلي لوخرين يتاصلو بيك في باجت نقاشك ولا في وصيله في باجت مستخدم نتاعك, اذا ارسلك واحد ما يبانش لادريس نتاعك , حتى اذ رديت عليه باش يبان لادريس نتاعك.',
+
+# Special:Log/newusers
+'newuserlogpage' => 'ريجيستر صنعة حسابات المستخدمين',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-edit' => 'عدل هاذ الباجه',
+
+# Recent changes
+'nchanges' => '$1 تبديله{{PLURAL:$1||s}}',
+'recentchanges' => 'تبديلات توالا',
+'recentchanges-legend' => 'ابسيون التبديلات التواله',
+'recentchanges-feed-description' => 'تبع التبديلات الجدد للويكي في هاذ التيار .',
+'recentchanges-label-newpage' => ' هاذ التبديل صنع باجه جديده',
+'recentchanges-label-minor' => 'هاذا تبديل صغير',
+'recentchanges-label-bot' => 'هاذ التبديل ندار بروبو',
+'recentchanges-label-unpatrolled' => 'ما تراجعتش هاذ التبديله للآن',
+'rcnotefrom' => "هاهي التبديلات  من'''$2''' (ل'''$1''' معروضه).",
+'rclistfrom' => 'بين التبديلات البديه من $1',
+'rcshowhideminor' => '$1 التبديلات الصغير',
+'rcshowhidebots' => '$1 البوتات',
+'rcshowhideliu' => '$1 المستخدمين المسجلين',
+'rcshowhideanons' => '$1 المستخدمين المجهولين',
+'rcshowhidepatr' => '$1 التبديلات المعسوسه',
+'rcshowhidemine' => '$1 تبديلات نتاعي',
+'rclinks' => 'بين آخر $1 تبديل في آخر $2 يوم<br />$3',
+'diff' => 'إختلاف',
+'hist' => 'تاريخ',
+'hide' => 'خبي',
+'show' => 'بين',
+'minoreditletter' => 'ط',
+'newpageletter' => 'ج‌',
+'boteditletter' => 'ب',
+'rc-enhanced-expand' => 'بين التفاصيل (يلزمها جافاسكريبت)',
+'rc-enhanced-hide' => 'خبي التفاصيل',
+
+# Recent changes linked
+'recentchangeslinked' => 'تبديلات مربوطه',
+'recentchangeslinked-toolbox' => 'تبديلات الباجات المرتبطه',
+'recentchangeslinked-title' => 'التبديلات المرتبطة ب "$1"',
+'recentchangeslinked-summary' => "هاذي ليستة تع التبديلات اللي تمت هاذ الخطرة للباجات الموصولة من باجة معينة (ولا للأعضاء الداخلين في تصنيف معين).
+الصفحات في [[Special:Watchlist|ليستت مراقبة نتاعك]] '''مغلظه'''",
+'recentchangeslinked-page' => 'اسم الباجه:',
+'recentchangeslinked-to' => 'بين التبديلات للباجات الموصولة للباجه المعطية عوضا العكس',
+
+# Upload
+'upload' => 'طلع فيشي',
+'uploadlogpage' => 'ريجيستر رفع الفيشيات',
+'filedesc' => 'ملخص',
+'uploadedimage' => 'راه طلع "[[$1]]"',
+
+'license' => 'ترخيص:',
+'license-header' => 'ترخيص:',
+
+# File description page
+'file-anchor-link' => 'ملف',
+'filehist' => 'تاريخ الفيشيي',
+'filehist-help' => 'ادرك على وقت و تاريخ/باش تشوف الملف كما بان  في هاذ الوقت.',
+'filehist-revert' => 'رجع',
+'filehist-current' => 'ذ الوقت',
+'filehist-datetime' => 'تاريخ و الوقت',
+'filehist-thumb' => 'تصويرة مصغرة',
+'filehist-thumbtext' => 'فينيات نتع النسخه $1',
+'filehist-user' => 'مستعمل',
+'filehist-dimensions' => 'القيس',
+'filehist-comment' => 'تعليق',
+'imagelinks' => 'إستعمال الملف',
+'linkstoimage' => '{{PLURAL:$1|الباجة توصل|ال$1 باجات يوصلو}} لهاذ الملف :',
+'nolinkstoimage' => 'ما كانش باجات موصوله لهاذ الفيشي.',
+'sharedupload-desc-here' => 'هاذ الملف جاي من $1. يمكن يكون مستعمل من بروجيات وحد أخرين.
+التوصيف نتاعو في [$2 باجت الصفات] محطوطه هنا لتحت.',
+
+# Random page
+'randompage' => 'باجة على الزهر',
+
+# Statistics
+'statistics' => 'إحصاويّات',
+
+# Miscellaneous special pages
+'nbytes' => '$1 اوكتي{{PLURAL:$1||s}}',
+'nmembers' => '$1 اعضاء{{PLURAL:$1||s}}',
+'prefixindex' => 'كامل الباجات الباديه ب',
+'usercreated' => '{{GENDER:$3|صنعه|صنعته}} في $1 الساعة $2',
+'newpages' => 'باجه جديده',
+'move' => 'عاود التسمية',
+'pager-newer-n' => '{{PLURAL:$1|جديد بزاف 1|جديد بزاف $1}}',
+'pager-older-n' => '{{PLURAL:$1|قديم بزاف 1|قديم بزاف $1}}',
+
+# Book sources
+'booksources' => 'مصادر كتاب',
+'booksources-search-legend' => 'حوس ما بين مصادر الكتب',
+'booksources-go' => 'اذهب',
+
+# Special:Log
+'log' => 'ريجيسترات العمليات',
+
+# Special:AllPages
+'allpages' => 'قاع الباجات',
+'alphaindexline' => '$1 إلى $2',
+'allarticles' => 'قاع الباجات',
+'allpagessubmit' => 'روح',
+
+# Special:Categories
+'categories' => 'تصنيفات',
+
+# Special:LinkSearch
+'linksearch-line' => '$1 موصولة من $2',
+
+# Special:ListGroupRights
+'listgrouprights-members' => '(ليسته الأعضاء)',
+
+# Email user
+'emailuser' => 'ابعث بريه لهاذ المستخدم',
+
+# Watchlist
+'watchlist' => 'ليستة نتاع التابعه',
+'mywatchlist' => 'ليستة نتاع التابعه',
+'watchlistfor2' => 'ل$1 ($2)',
+'watch' => 'تبع',
+'unwatch' => 'ما تزيدش تعس',
+'watchlist-details' => '{{PLURAL:$1||باجه وحده|زوج باجات|$1 باجات|$1 باجه }} في ليستت مراقبتك، بلا ما تعد باجات النقاش.',
+'wlshowlast' => 'بين آخر $1 سوايع $2 يامات$3',
+'watchlist-options' => 'ابسيون ليستت المراقبه',
+
+# Delete
+'actioncomplete' => 'العمليه اندارت',
+'actionfailed' => 'العمليه فشلت',
+'dellogpage' => 'ريجيستر محو الباجات',
+
+# Rollback
+'rollbacklink' => 'ولي',
+
+# Protect
+'protectlogpage' => 'ريجيستر الحمايه',
+'protectedarticle' => 'راه حمى "[[$1]]"',
+
+# Undelete
+'undeletelink' => 'شوف/رجع',
+'undeleteviewlink' => 'شوف',
+
+# Namespace form on various pages
+'namespace' => 'بلاصه تع أسموات',
+'invert' => 'اعكس التخيار',
+'blanknamespace' => 'أساسي',
+
+# Contributions
+'contributions' => 'مساهمات {{GENDER:$1|المستخدم|المستخدمه}}',
+'contributions-title' => 'مساهمات {{GENDER:$1|المستخدم|المستخدمه}} $1',
+'mycontris' => 'مساهماتي',
+'contribsub2' => 'ل$1 ($2)',
+'uctop' => 'ذ الوقت',
+'month' => 'من شهر (وأقدم):',
+'year' => 'من عام (وأقدم):',
+
+'sp-contributions-newbies' => 'اعرض مشاركات الحسابات الجديده برك',
+'sp-contributions-blocklog' => 'ريجيسترالمنع',
+'sp-contributions-uploads' => 'مرفوعات',
+'sp-contributions-logs' => 'ريجيسترات',
+'sp-contributions-talk' => 'نقاش',
+'sp-contributions-search' => 'تفتاش المشاركات',
+'sp-contributions-username' => 'عنوان أيبي والال اسم مستخدم:',
+'sp-contributions-toponly' => 'ما تبين غير المشاركات التوالا نتاع المقالات',
+'sp-contributions-submit' => 'تفتاش',
+
+# What links here
+'whatlinkshere' => 'واش يوصل هنا',
+'whatlinkshere-title' => 'الباجات اللي تقين في "$1"',
+'whatlinkshere-page' => 'الباجه:',
+'linkshere' => "هاذ الباجات يوصلو إلى '''[[:$1]]''':",
+'nolinkshere' => "ما كانش  باجه فيها وصيله ل'''[[:$1]]'''.",
+'isredirect' => 'باجت تحويل',
+'istemplate' => 'تضمين',
+'isimage' => 'وصيلة ملف',
+'whatlinkshere-prev' => '{{PLURAL:$1|التالي|ال$1 التاليه}}',
+'whatlinkshere-next' => '{{PLURAL:$1|الجايه|ال$1 الجايه}}',
+'whatlinkshere-links' => '← وصيلات',
+'whatlinkshere-hideredirs' => '$1 التحويلات',
+'whatlinkshere-hidetrans' => '$1 التضمينات',
+'whatlinkshere-hidelinks' => '$1 الوصيلات',
+'whatlinkshere-hideimages' => '$1 وصيلات الفيشيات',
+'whatlinkshere-filters' => 'صفايات',
+
+# Block/unblock
+'ipboptions' => 'ساعتين:2 hours,نهار واحد:1 day,3 نهارات:3 days,سيمانة وحدة:1 week,سيمانتين:2 weeks,شهر واحد:1 month,3 أشهر:3 months,6 أشهر:6 months,عام واحد:1 year,دايم:infinite',
+'ipblocklist' => 'المستخدمون الممنوعون',
+'blocklink' => 'حبس',
+'unblocklink' => 'ديبلوكي',
+'change-blocklink' => 'بدل البلوكاج',
+'contribslink' => 'المساهمات',
+'blocklogpage' => 'ريجيسترالمنع',
+'blocklogentry' => 'منع "[[$1]]" لفترة زمنية مدتها $2 $3',
+'block-log-flags-nocreate' => 'صنعت الحسابات ممنوعه',
+
+# Move page
+'movelogpage' => 'روجيستر التنقال',
+'revertmove' => 'رجع',
+
+# Export
+'export' => 'صدر الباجه',
+
+# Namespace 8 related
+'allmessagesname' => 'الاسم',
+'allmessagesdefault' => 'الكتبه الافتراضيه',
+
+# Thumbnails
+'thumbnail-more' => 'كبر',
+'thumbnail_error' => 'غلطه في خدمت صورة مصغرةالمينياتير: $1',
+
+# Tooltip help for the actions
+'tooltip-pt-userpage' => 'باجتك نتع مستعمل',
+'tooltip-pt-mytalk' => 'باجه نتع نقاشاتك',
+'tooltip-pt-preferences' => 'وش خيرت',
+'tooltip-pt-watchlist' => 'ليستت الباجات الي راك أتبع تبديلاتهم',
+'tooltip-pt-mycontris' => 'ليسته نتع مساهماتك',
+'tooltip-pt-login' => 'مادابيك تسجل الدخول تاعك، بصّح ماشي ملزوم عليك',
+'tooltip-pt-logout' => 'سجل خروج',
+'tooltip-ca-talk' => 'نقاش على باجت المحتوى',
+'tooltip-ca-edit' => 'تنجم تحرر هاذ الباجه ،ماذابيك تستعمل قفله المراجعه قبل ما تحفظ',
+'tooltip-ca-addsection' => 'ابدأ طرف جديد',
+'tooltip-ca-viewsource' => 'هاذ الباجه محميه. و شنو تقدرو تشوفو الأصلي نتاعها',
+'tooltip-ca-history' => 'المراجعات التوالى نتاع الباجه (مع المساهمين نتاوعها)',
+'tooltip-ca-protect' => 'بروتيجي هاذالباجه',
+'tooltip-ca-delete' => 'امحي هاذ الباجه',
+'tooltip-ca-move' => 'بدل أسم هذ الباجه',
+'tooltip-ca-watch' => 'زيد هذ الباجه لليستتك نتاع التتباع',
+'tooltip-ca-unwatch' => 'اقلع هاذ الباجه من الليسته نتاع التتباع',
+'tooltip-search' => ' فتّش في {{SITENAME}}',
+'tooltip-search-go' => 'روح الباجه عندها نفس الآسم إذا كانت كاينه',
+'tooltip-search-fulltext' => 'فتّش على باجه بهاد الكتبة',
+'tooltip-p-logo' => 'روح للباجه اللولانيّه',
+'tooltip-n-mainpage' => 'زور الباجه اللوله',
+'tooltip-n-mainpage-description' => 'زور الباجه لوله',
+'tooltip-n-portal' => 'على الپروجي،واش تنجم تدير، وين تصيب واش تحتاج',
+'tooltip-n-currentevents' => 'تحواس على معلومات أساسية لصوالح صراو ذروك',
+'tooltip-n-recentchanges' => 'الليستة تاع التبديلات التوالا فل ويكي',
+'tooltip-n-randompage' => 'طلّع باجه على الزهر',
+'tooltip-n-help' => 'بلاصة المعونة',
+'tooltip-t-whatlinkshere' => 'ليسته نتاع قاع باجات المحتوى الي توصل هنا',
+'tooltip-t-recentchangeslinked' => 'ليسته نتاع التبديلات التواله نتاع الباجات الي عندهم علاقه بهاذي',
+'tooltip-feed-atom' => 'سيلان آتوم نتاع الباجه',
+'tooltip-t-contributions' => 'شوفان ليسته مساهمات هاذا المستخدم',
+'tooltip-t-emailuser' => 'أرسل بريه لهاذ المستخدم',
+'tooltip-t-upload' => 'أرسل تصويرة و إلا أي ملف ميديا للسرفر',
+'tooltip-t-specialpages' => 'ليستة تاع كامل الباجات الخصوصيّة',
+'tooltip-t-print' => 'نسخه لهاذ الباجه قابله للطبيع',
+'tooltip-t-permalink' => 'توصيله دايمه رايحه لهاذ النسخة نتاع الباجة',
+'tooltip-ca-nstab-main' => 'شوف باجه المحتوى',
+'tooltip-ca-nstab-user' => 'شوف باجت المستعمل',
+'tooltip-ca-nstab-special' => 'هذه الباجه خصوصيه،ما تقدرش تبدل فيها',
+'tooltip-ca-nstab-project' => 'شوف باجت البروجي',
+'tooltip-ca-nstab-image' => 'شوف باجت الملف',
+'tooltip-ca-nstab-template' => 'شوفان القالب',
+'tooltip-ca-nstab-category' => 'شوفان باجة التصنيف',
+'tooltip-minoredit' => 'ماركي هاذا تبديل صغير',
+'tooltip-save' => 'سجل تبديلات نتاعك',
+'tooltip-preview' => 'بين التغييرات نتاعك، من فضلك استخدم هذا قبل ما تنشر!',
+'tooltip-diff' => 'تخلي الشوفان نتاع التبديلات اللي ندارو.',
+'tooltip-compareselectedversions' => 'شوف الفروق بين نسختين مخيرين من هاذ الباجه.',
+'tooltip-watch' => 'زيد هذ الباجه لليستتك نتاع التتباع',
+'tooltip-rollback' => 'يولي : بدركة وحده تآنيلي التبديله و إلا التبديلات نتاع المساهم التالي',
+'tooltip-undo' => '"نحّي" فاصي هاد الـمعاودة و حلّ تاقة تاع تبدال بشوفه قبلانيّه. تخلّي باش ترجع لل معاوده التاليه و تزيد الـسبّة علاش فل قابسه تاع الـحويصله.',
+'tooltip-summary' => 'دخل تلخيص صغير',
+
+# Browsing diffs
+'previousdiff' => '→ التعديل الي قبل',
+'nextdiff' => 'التبديل الجاي ←',
+
+# Media information
+'file-info-size' => '$1 × $2 بكسل حجم الملف: $3، نوع MIME: $4',
+'file-nohires' => 'ما كانش دقه اكثر من هاك',
+'svg-long-desc' => 'فيشيي SVG، أبعاده $1 × $2 بكسل، تاي الفيشي : $3',
+'show-big-image' => 'تصويرة دقة عالية',
+
+# Bad image list
+'bad_image_list' => 'الفورمه كيما التابعة:
+ما كاين غير السطور الّي باديين بل *، الّي يكونو معدودين
+الـوصيل الـلوّل نتاع سطر لازم تكون تاع تصويرة ضايعة.
+كامل الوصيلات لخرين الّي فل سطر، يكونو معدودين كلّي تتنيّات، بل كي الباجات وين الـفيشي يكون باين.',
+
+# Metadata
+'metadata' => 'بايان ميتا',
+'metadata-help' => 'هذا الملف راه فيه معلومات زيادة، بالاك تكون انزادت من عند صواره نيميريك ولا سكانر مين صنع الملف.
+الأصلي، شي تفاصيل بالاك ما تعبرش على الملف المعدل.',
+'metadata-fields' => 'غادي ينعرض الحقل نتاع معطيات الميتا الكاينه في هاذ البريه في باجه التصويرة منين يكون جدول معطيات الميتا مطوياً.
+الحقول لخره تكون مخبية بار ديفو.
+* make
+* model
+* datetimeoriginal
+* exposuretime
+* fnumber
+* isospeedratings
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
+
+# 'all' in various places, this might be different for inflected languages
+'watchlistall2' => 'لكل',
+'namespacesall' => 'لكل',
+'monthsall' => 'لكل',
+
+# Watchlist editing tools
+'watchlisttools-view' => 'اعرض التبديلات المرتابطه',
+'watchlisttools-edit' => 'اعرض قائمه المراقبه و عدلها',
+'watchlisttools-raw' => 'موديفي ليستت التبيعه الخام',
+
+# Core parser functions
+'duplicate-defaultsort' => '\'\'\'توليه:\'\'\' مفتاح التستيف الافتراضي "$2" ديباسا مفتاح التستيف الافتراضي التالي"$1".',
+
+# Special:SpecialPages
+'specialpages' => 'الباجات الخصوصيه',
+
+# External image whitelist
+'external_image_whitelist' => ' #<pre>خلى هاذ السطر كيما راه
+#حط منثورات التعبيرات المنتظمة (برك الجزء الي يروح بين //) بالتحت
+#هاذ يكون مطابقتها مع مسارات التصاوير البرانيه (الموصولة بصفه مباشره)
+#هاذي الي تشبهغادي تنعرض  كتصاور، خلاف هذا برك وصيلة للتصويرة غادي تنعرض
+#السطور اللي تبدأا ب# تعتبر تعليقات
+#هذا لا يتأثر بحالة الحروف
+
+#حط كامل منثورات التعبيرات المنتظمة فوق هذا السطر. خلي هاذ السطر سواسوا كيما هو</pre>',
+
+# Special:Tags
+'tag-filter' => 'صفاية[[Special:Tags|الوشام]]:',
+
+);
index 20d0d6c..30251a1 100644 (file)
@@ -795,8 +795,7 @@ raha kayna bĝda.',
 'revdelete-no-file' => 'dak l-milef ma kayn-ċ.',
 'revdelete-show-file-confirm' => 'waċ mṫ\'kked baġi ṫċof ṃoṛajaĝa mḫdofa ṫaĝ milef "<nowiki>$1</nowiki>" mn $2 l-$3?',
 'revdelete-show-file-submit' => 'iyih',
-'revdelete-selected' => "'''{{PLURAL:$2|ṃoṛajaĝa mĥṫaṛa|ṃoṛajaĝaṫ mĥṫaṛa}} d-[[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|ḫadaṫ sijill mĥṫaṛ|aḫdaṫ sijill mĥṫaṛa}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|ḫadaṫ sijill mĥṫaṛ|aḫdaṫ sijill mĥṫaṛa}}:',
 'revdelete-legend' => 'dir ḍ-ḍawaḅit dl-vizibiliṫi',
 'revdelete-hide-text' => 'khbbi nass lmorajaa',
 'revdelete-hide-image' => 'khbi lmohtawa dyal lfichier',
index 57a1f11..891ead1 100644 (file)
@@ -1099,8 +1099,7 @@ $2',
 'revdelete-no-file' => 'الملف المتحدد مالوش وجود',
 'revdelete-show-file-confirm' => 'انتا متأكد من انك عايز تشوف المراجعه الممسوحه بتاعة الملف "<nowiki>$1</nowiki>" من  $2 لحد $3?',
 'revdelete-show-file-submit' => 'ايوه',
-'revdelete-selected' => "'''{{PLURAL:$2|المراجعه المختاره|المراجعات المختاره}} بتاعة [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:',
 'revdelete-confirm' => 'لو سمحت اتأكدد انك ناوى تعمل كدا, و انك فاهم اللى ح يترتب على كدا, و انك بتعمل كدا بالتوافق مع مع [[{{MediaWiki:Policy-url}}|السياسه]].',
 'revdelete-suppress-text' => "الكبت لازم ييتعمل '''بس''' فى الحالات دى:
 * معلومات شخصيه مش مناسبه
index 7533511..580b60d 100644 (file)
@@ -901,7 +901,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 'noarticletext-nopermission' => 'এই পৃষ্ঠাত বৰ্তমান কোনো পাঠ্য নাই।
 আপুনি আন পৃষ্ঠাত [[Special:Search/{{PAGENAME}}|এই শিৰোনামা অনুসন্ধান কৰিব পাৰে]],
 বা <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} সম্পৰ্কীয় অভিলেখ অনুসন্ধান কৰিব পাৰে]</span>, কিন্তু এই পৃষ্ঠা সৃষ্টি কৰিবলৈ আপোনাৰ অনুমতি নাই।',
-'missing-revision' => '"{{PAGENAME}}" নামৰ পৃষ্ঠাৰ #$1 সংশোধনৰ অস্তিত্ব নাই।
+'missing-revision' => '"{{FULLPAGENAME}}" নামৰ পৃষ্ঠাৰ #$1 সংশোধনৰ অস্তিত্ব নাই।
 
 সাধাৰণতে বিলোপ কৰা এখন পৃষ্ঠাৰ পুৰণা ইতিহাস লিংক অনুসৰণ কৰিলে এনে হয়।
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} বিলোপন ল\'গ]ত অধিক তথ্য পাব।',
@@ -1139,8 +1139,7 @@ $3 য়ে আগবঢ়োৱা ইয়াৰ কাৰণ হৈছে
 'revdelete-no-file' => 'নিৰ্ধাৰিত ফাইলটো নাই।',
 'revdelete-show-file-confirm' => 'আপুনি "<nowiki>$1</nowiki>"  ফাইলৰ বিলোপ কৰা কৰা সংশোধন $2 তাৰিখৰ পৰা $3 সময়ত চাব বিচাৰিছে নেকি?',
 'revdelete-show-file-submit' => 'হয়',
-'revdelete-selected' => "'''[[:$1]]-ৰ {{PLURAL:$2|নিৰ্বাচিত সংশোধন|নিৰ্বাচিত সংশোধনসমূহ}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|টা নিৰ্বাচিত ল’গ ভৰ্তি|টা নিৰ্বাচিত ল’গ ভৰ্তি}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|টা নিৰ্বাচিত ল’গ ভৰ্তি|টা নিৰ্বাচিত ল’গ ভৰ্তি}}:',
 'revdelete-confirm' => 'অনুগ্ৰহ কৰি সাব্যস্ত কৰক যে আপুনি ইয়াৰ পৰিণাম বুজি আৰু [[{{MediaWiki:Policy-url}}|the policy]] ৰ সৈতে সহমত হৈ এই কামটো কৰিব বিচাৰিছে |',
 'revdelete-suppress-text' => "নিবাৰণ '''কেৱল''' তলত দিয়া কাৰণসমূহত ব্যৱহৃত হ’ব:
 * সম্ভাব্য ক্ষতিকাৰক তথ্য 
index 21830ad..1cba5d8 100644 (file)
@@ -811,7 +811,7 @@ Pue [[Special:Search/{{PAGENAME}}|buscar esti títulu de páxina]] n\'otres páx
 o [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar esta páxina]</span>.',
 'noarticletext-nopermission' => 'Nestos momentos nun hai testu nesta páxina.
 Pue [[Special:Search/{{PAGENAME}}|buscar esti títulu de páxina]] n\'otres páxines o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar los rexistros rellacionaos]</span>, pero nun tiene permisu pa crear esta páxina.',
-'missing-revision' => 'La revisión #$1 de la páxina llamada "{{PAGENAME}}" nun esiste.
+'missing-revision' => 'La revisión #$1 de la páxina llamada "{{FULLPAGENAME}}" nun esiste.
 
 De vezu la causa d\'esto ye siguir un enllaz antiguu del historial a una páxina que se desanició.
 Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistru de desanicios].',
@@ -1045,8 +1045,7 @@ Pues ver el diff; los detalles s'alcuentren nel [{{fullurl:{{#Special:Log}}/supr
 'revdelete-no-file' => 'El ficheru conseñáu nun esiste.',
 'revdelete-show-file-confirm' => '¿Tas seguru de que quies ver una versión desaniciada del ficheru "<nowiki>$1</nowiki>" del $2 a les $3?',
 'revdelete-show-file-submit' => 'Sí',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisión seleicionada|Revisiones seleicionaes}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Socesu del rexistru seleicionáu|Socesos del rexistru seleicionaos}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Socesu del rexistru seleicionáu|Socesos del rexistru seleicionaos}}:',
 'revdelete-text-text' => 'Les revisiones desaniciaes inda apaecerán nel historial de la páxina, pero partes del conteníu nun sedrán accesibles al públicu.',
 'revdelete-text-file' => 'Les versiones del ficheru desaniciaes inda apaecerán nel historial del ficheru, pero partes del conteníu nun sedrán accesibles al públicu.',
 'logdelete-text' => 'Los socesos del rexistru desaniciaos inda apaecerán nos rexistros, pero partes del conteníu nun sedrán accesibles al públicu.',
index 6209cc6..3c3d5b0 100644 (file)
@@ -715,8 +715,7 @@ Ta ropasusu warzafu bu yo va [[Special:Search|aneyara ko wiki]] yawal.',
 'revdelete-nooldid-text' => 'Ta skura va bati fli, ont rin va jalaf betaks me bazeyel, ont yawayal da va noeltaf betaks palsel.',
 'revdelete-no-file' => 'Bazen iyeltak me krulder.',
 'revdelete-show-file-submit' => 'En',
-'revdelete-selected' => "'''{{PLURAL:$2|Reban betaks|Yon reban betaks}} va [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:\$1|Reban \"log\" bif|Yon reban \"log\" bif}} :'''",
+'logdelete-selected' => '{{PLURAL:$1|Reban "log" bif|Yon reban "log" bif}} :',
 'revdelete-legend' => 'Skus irutareem',
 'revdelete-hide-text' => 'Palsera va betaracek',
 'revdelete-hide-image' => 'Palsera va iyeltakcek',
index 927c0df..290c41e 100644 (file)
@@ -885,8 +885,7 @@ Mümkündür ki, bununla bağlı təfərrüatlar [{{fullurl:{{#Special:Log}}/del
 'revdelete-no-file' => 'Axtarılan fayl mövcud deyil',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" faylının $2 $3 tarixli silinmiş bir redaktəsini görmək istədiyinizdən əminsizinizmi?',
 'revdelete-show-file-submit' => 'Bəli',
-'revdelete-selected' => "'''[[:$1]] səhifəsinin {{PLURAL:$2|seçilmiş versiyası|seçilmiş versiyaları}}:'''",
-'logdelete-selected' => "'''Jurnalın {{PLURAL:$1|seçilmiş qeydi|seçilmiş qeydləri}}:'''",
+'logdelete-selected' => 'Jurnalın {{PLURAL:$1|seçilmiş qeydi|seçilmiş qeydləri}}:',
 'revdelete-legend' => 'Məhdudiyyətləri müəyyənləşdir:',
 'revdelete-hide-text' => 'Səhifənin bu versiyasının mətnini gizlə',
 'revdelete-hide-image' => 'Faylın məzmununu gizlə',
index 6c4e1d2..74b83f8 100644 (file)
@@ -766,7 +766,7 @@ $2
 باشقا صحیفه‌‌لرده عینی آددا صحیفه‌‌نی  [[Special:Search/{{PAGENAME}}| آختار]], علاقه‌‌لی قئيدلره 
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} باخا],
 و يا صحیفه‌‌نی  [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaktə]</span> ائده بیلرسینیز.',
-'missing-revision' => '«{{PAGENAME}}» صحیفه‌سی اوچون $1 نومره‌لی نوسخه یوخدور.
+'missing-revision' => '«{{FULLPAGENAME}}» صحیفه‌سی اوچون $1 نومره‌لی نوسخه یوخدور.
 
 عموماُ بو ایشکال، واختی گئچمیش بیر باغلانتی ایله سیلینمیش بیر صحیفه‌یه گلنده، قاباغا گلر.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سیلمک سیاهی]‌سینده باشقا بیلگیلر اولا بیلر.',
@@ -987,7 +987,6 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'revdelete-no-file' => 'آختاریلان فايل مؤوجود دئيیل',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" فایلینین $2 $3 تاریخ‌لی سیلینمیش بیر رئداکته‌سینی گؤرمک ایستدیگینیزدن امینسیزینیزمی؟',
 'revdelete-show-file-submit' => 'بلی',
-'revdelete-selected' => "[[:$1]] صحیفه‌سی‌نین {{PLURAL:$2|سئچیلمیش نوسخه لری|سئچیلمیش نوسخه لری }}:'",
 'logdelete-selected' => "'ژورنالین {{PLURAL:$1|سئچیلمیش قئیدی|سئچیلمیش قئیدلری}}:'",
 'revdelete-confirm' => 'خاهیش ائدیریک، بونو ائتمک ایستدیگینیزی، نتیجه‌لرینی آنلادیغینیزی، و بونو [[{{MediaWiki:Policy-url}}| پرینسیپ‌لره]] گؤره ائدیر اولدوغونوزو تسدیق ائدین.',
 'revdelete-suppress-text' => "ساخلاما 'یالنیز آشاغی‌داکی حال‌لار اوچون ایستیفاده ائدیلمه‌لی‌دیر:
index ba530dd..80d3fa4 100644 (file)
@@ -853,7 +853,7 @@ $2
 'noarticletext-nopermission' => 'Хәҙерге ваҡытта был биттә текст юҡ.
 Һеҙ башҡа биттәрҙә [[Special:Search/{{PAGENAME}}|был исемде]] йәки
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} журналдағы яҙмаларҙы] эҙләй алаһығыҙ, тик һеҙҙең бит яһау хоҡуғығыҙ юҡ.</span>',
-'missing-revision' => '"{{PAGENAME}}" исемле биттең $1 номерлы өлгөһө юҡ.
+'missing-revision' => '"{{FULLPAGENAME}}" исемле биттең $1 номерлы өлгөһө юҡ.
 
 Был хәл, ғәҙәттә, юйылған биткә яһалған һылтанманын ваҡыты үтеүенән барлыҡҡа килә.
 Тулыраҡ мәғлүмәт өсөн ҡарағыҙ: [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} юйыу яҙмалары].',
@@ -1075,8 +1075,7 @@ $3 белдергән сәбәп: ''$2''",
 'revdelete-no-file' => 'Күрһәтелгән файл юҡ.',
 'revdelete-show-file-confirm' => '$2, $3 ваҡытлы «<nowiki>$1</nowiki> файлының юйылған версияһын ҡарарға теләүегеҙҙе раҫлайһығыҙмы?',
 'revdelete-show-file-submit' => 'Эйе',
-'revdelete-selected' => "'''[[:$1]] битенең {{PLURAL:$2|1=һайланған версияһы|һайланған версиялары}}:'''",
-'logdelete-selected' => "'''Яҙманың {{PLURAL:$1|1=һайланған яҙыуы|һайланған яҙыуҙары}}:'''",
+'logdelete-selected' => 'Яҙманың {{PLURAL:$1|1=һайланған яҙыуы|һайланған яҙыуҙары}}:',
 'revdelete-confirm' => 'Зинһар, был ғәмәлде үтәргә теләүегеҙҙе, буласаҡ һөҙөмтәләрҙә аңлауығыҙҙы, [[{{MediaWiki:Policy-url}}|ҡағиҙәләр]] буйынса эшләүегеҙҙе раҫлағыҙ.',
 'revdelete-suppress-text' => "Йәшереү '''тик''' киләһе осраҡтарҙа ғына башҡарыла:
 
index c3cf10f..f691fb4 100644 (file)
@@ -832,8 +832,7 @@ Legend: (cur) = تفاوتان گون هنوکین نسخه,
 ،بازبینی مشخص موجود نهنت، یا شما تلاش کنیت هنوکین بازبینی پناه کنیت.',
 'revdelete-no-file' => 'فایل مشخص بیتگین موجود نهنت',
 'revdelete-show-file-submit' => 'بله',
-'revdelete-selected' => "'''{{PLURAL:$2|بازبینی انتخابی|بازبینی ان انتخابی}} چه [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|رویداد آمار انتخابی|رویداد ان آمار انتخابی}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|رویداد آمار انتخابی|رویداد ان آمار انتخابی}}:',
 'revdelete-suppress-text' => "فرونشانی بایدن '''فقط''' په جهلگین موارد استفاده بیت:
 * اطلاعات نامناسب شخصی
 *: ''نشانی لوگ، شماره تلفن، شماره تامین اجتماعی و دگه.''",
index 7095f75..86058cf 100644 (file)
@@ -819,7 +819,7 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} liwaton ining pahina]</span>.',
 'noarticletext-nopermission' => 'Mayong sa presente nin teksto an pahinang ini.
 Ika mapuwedeng [[Special:Search/{{PAGENAME}}|hanapa para kaining titulo kan pahina]] sa iba pang mga pahina,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa magkasurundong mga talaan]</span>.',
-'missing-revision' => 'An rebisyon #$1 kan pahina pinagngaranan na "{{PAGENAME}}" bakong eksistido.
+'missing-revision' => 'An rebisyon #$1 kan pahina pinagngaranan na "{{FULLPAGENAME}}" bakong eksistido.
 
 Ini pirmihan na pinagkakausa sa paagi nin pagsusunod nin luwas na petsang historiya nin kasugpunan pasiring sa sarong pahinang pinagpura na.
 An mga detalye matatagboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} pinagpura na talaan].',
@@ -1046,8 +1046,7 @@ Ika puwedeng makakatanaw kaining diff; mga detalye puwedeng mananagboan sa [{{fu
 'revdelete-no-file' => 'An sagunson na pinaghayag dae tabi eksistido.',
 'revdelete-show-file-confirm' => 'Segurado ka tabi na gusto mo matanaw sarong pinagpurang pagbabago kan sagunson "<nowiki>$1</nowiki>" poon $2 sa $3?',
 'revdelete-show-file-submit' => 'Iyo tabi',
-'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Mga piniling pagbabago}} kan [[:$1]]'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Selected log event|Mga piniling talaan kan mga pangyayari}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Selected log event|Mga piniling talaan kan mga pangyayari}}:',
 'revdelete-confirm' => 'Pakikumpirma tabi na ika tuyong gumibo kaini, na saimong naintindihan an mga konsekuwensiya, asin ta ika pinaghihimo ini na uyon sa [[{{MediaWiki:Policy-url}}|an palisiya]].',
 'revdelete-suppress-text' => "An paglulubog dapat '''sana''' magagamit para sa minasunod na mga kaso:
 *Potensiyal na libeloso an impormasyon
index 006f2da..eb0efc9 100644 (file)
@@ -111,7 +111,7 @@ $messages = array(
 'tog-previewontop' => 'Папярэдні паказ — над рэдактарскім полем',
 'tog-previewonfirst' => 'Папярэдні паказ пры першай праўцы',
 'tog-enotifwatchlistpages' => 'Слаць мне эл.пошту, калі мяняецца старонка ў маім спісе назірання',
-'tog-enotifusertalkpages' => 'СлаÑ\86Ñ\8c Ñ\8dл.поÑ\88Ñ\82Ñ\83 Ð¿Ñ\80а Ð¼ÐµÐ½Ñ\8b Ñ\9e Ð¼Ð°Ñ\91й Ñ\80азмоÑ\9eнай Ñ\81Ñ\82аÑ\80онÑ\86Ñ\8b',
+'tog-enotifusertalkpages' => 'Ð\9fаведамлÑ\8fÑ\86Ñ\8c Ð¼Ð½Ðµ Ð½Ð° Ñ\8dл.поÑ\88Ñ\82Ñ\83 Ð°Ð± Ð·Ð¼ÐµÐ½Ð°Ñ\85 Ð½Ð° Ð¼Ð°Ñ\91й Ñ\81Ñ\82аÑ\80онÑ\86Ñ\8b Ñ\80азмоÑ\9e',
 'tog-enotifminoredits' => 'Паведамяць мне на эл.пошту пра дробныя праўкі старонак і файлаў',
 'tog-enotifrevealaddr' => 'Не скрываць майго адрасу эл.пошты ў паведамленнях',
 'tog-shownumberswatching' => 'Паказваць колькасць назіральнікаў',
@@ -936,8 +936,7 @@ $2
 'revdelete-no-file' => 'Пазначаны файл не існуе.',
 'revdelete-show-file-confirm' => 'Ці сапраўды паказаць сцёртую версію файла "<nowiki>$1</nowiki>" ($2 $3)?',
 'revdelete-show-file-submit' => 'Так',
-'revdelete-selected' => "'''{{PLURAL:$2|Выбраная версія|Выбраныя версіі}} [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Выбраны запіс|Выбраныя запісы}} журналу:'''",
+'logdelete-selected' => '{{PLURAL:$1|Выбраны запіс|Выбраныя запісы}} журналу:',
 'revdelete-confirm' => 'Пацвердзіце, што вы жадаеце гэта зрабіць, што вы разумееце наступствы, і што вы робіце гэта ў адпаведнасці з [[{{MediaWiki:Policy-url}}|арганізацыйнымі правіламі]].',
 'revdelete-suppress-text' => "Заглушэнне належыць ужываць '''выключна''' ў наступных выпадках:
 * Недапушчальная асабістая інфармацыя
@@ -1342,7 +1341,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|змена|змены|змен}}',
 'recentchanges' => 'Апошнія змены',
 'recentchanges-legend' => 'Магчымасці паказу',
-'recentchanges-summary' => 'Гэта апошнія мены на пляцоўцы {{SITENAME}}.',
+'recentchanges-summary' => 'Ð\93Ñ\8dÑ\82а Ð°Ð¿Ð¾Ñ\88нÑ\96Ñ\8f Ð·Ð¼ÐµÐ½Ñ\8b Ð½Ð° Ð¿Ð»Ñ\8fÑ\86оÑ\9eÑ\86Ñ\8b {{SITENAME}}.',
 'recentchanges-feed-description' => 'Сачыць за найбольш актуальнымі змяненнямі ў віксе праз гэты струмень навін.',
 'recentchanges-label-newpage' => 'Гэтай праўкай была створана новая старонка',
 'recentchanges-label-minor' => 'Гэта дробная па значэнні праўка',
@@ -1987,7 +1986,7 @@ $1',
 'enotif_mailer' => 'Апавяшчальнік {{SITENAME}}',
 'enotif_reset' => 'Пазначыць усе старонкі як наведаныя',
 'enotif_impersonal_salutation' => 'Шаноўны ўдзельнік {{SITENAME}}',
-'enotif_lastvisited' => 'Гл. $1 каб бачыць усе мены пасля вашага апошняга наведвання.',
+'enotif_lastvisited' => 'Ð\93л. $1 ÐºÐ°Ð± Ð±Ð°Ñ\87Ñ\8bÑ\86Ñ\8c Ñ\83Ñ\81е Ð·Ð¼ÐµÐ½Ñ\8b Ð¿Ð°Ñ\81лÑ\8f Ð²Ð°Ñ\88ага Ð°Ð¿Ð¾Ñ\88нÑ\8fга Ð½Ð°Ð²ÐµÐ´Ð²Ð°Ð½Ð½Ñ\8f.',
 'enotif_lastdiff' => 'Гл. $1 каб бачыць гэтую мену.',
 'enotif_anon_editor' => 'ананімны ўдзельнік $1',
 'enotif_body' => 'Паважаны(ая) $WATCHINGUSERNAME,
@@ -2612,7 +2611,7 @@ $1',
 'tooltip-n-randompage' => 'Паказаць выпадковую старонку',
 'tooltip-n-help' => 'Дзе можна атрымаць тлумачэнні.',
 'tooltip-t-whatlinkshere' => 'Спіс вікі-старонак, што спасылаюцца сюды',
-'tooltip-t-recentchangeslinked' => 'Нядаўнія мены ў старонках, на якія спасылаецца гэтая старонка',
+'tooltip-t-recentchangeslinked' => 'Ð\9dÑ\8fдаÑ\9eнÑ\96Ñ\8f Ð·Ð¼ÐµÐ½Ñ\8b Ñ\9e Ñ\81Ñ\82аÑ\80онкаÑ\85, Ð½Ð° Ñ\8fкÑ\96Ñ\8f Ñ\81паÑ\81Ñ\8bлаеÑ\86Ñ\86а Ð³Ñ\8dÑ\82аÑ\8f Ñ\81Ñ\82аÑ\80онка',
 'tooltip-feed-rss' => 'RSS-струмень гэтай старонкі',
 'tooltip-feed-atom' => 'Струмень навін Atom для гэтай старонкі',
 'tooltip-t-contributions' => 'Паказаць пералік укладаў гэтага ўдзельніка',
@@ -3298,8 +3297,8 @@ $5
 'livepreview-error' => 'Не ўдалося далучыцца: $1 "$2". Паспрабуйце звычайны перадпаказ.',
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => 'Ð\9cенÑ\8b, Ð½Ð°Ð²ÐµÐ¹Ñ\88Ñ\8bÑ\8f Ð·Ð° $1 {{PLURAL:$1|Ñ\81ек.|Ñ\81ек.}}, Ð¼Ð¾Ð³Ñ\83Ñ\86Ñ\8c Ð½Ðµ Ñ\82Ñ\80апÑ\96Ñ\86Ñ\8c Ñ\83 Ð³Ñ\8dÑ\82Ñ\8b Ð¿Ð°ÐºÐ°Ð·.',
-'lag-warn-high' => 'Ð\97 Ð¿Ñ\80Ñ\8bÑ\87Ñ\8bнÑ\8b Ð¼Ð¾Ñ\86нÑ\8bÑ\85 Ð·Ð°Ñ\82Ñ\80Ñ\8bмак Ð½Ð° Ñ\81еÑ\80веÑ\80Ñ\8b Ð±Ð°Ð· Ð´Ð°Ð½Ñ\8bÑ\85, Ð¼ÐµÐ½Ñ\8b, Ð½Ð°Ð²ÐµÐ¹Ñ\88Ñ\8bÑ\8f Ð·Ð° $1 {{PLURAL:$1|Ñ\81ек.|Ñ\81ек.}}, Ð¼Ð¾Ð³Ñ\83Ñ\86Ñ\8c Ð½Ðµ Ñ\82Ñ\80апÑ\96Ñ\86Ñ\8c Ñ\83 Ð³Ñ\8dÑ\82Ñ\8b Ð¿Ð°ÐºÐ°Ð·.',
+'lag-warn-normal' => 'Ð\97менÑ\8b, Ð·Ñ\80обленÑ\8bÑ\8f Ð¼ÐµÐ½Ñ\88 Ð·Ð° $1 {{PLURAL:$1|Ñ\81ек.|Ñ\81ек.}} Ð½Ð°Ð·Ð°Ð´, Ð¼Ð¾Ð³Ñ\83Ñ\86Ñ\8c Ð½Ðµ Ñ\82Ñ\80апÑ\96Ñ\86Ñ\8c Ñ\83 Ð³Ñ\8dÑ\82Ñ\8b Ñ\81пÑ\96Ñ\81.',
+'lag-warn-high' => 'Ð\97 Ð¿Ñ\80Ñ\8bÑ\87Ñ\8bнÑ\8b Ð¼Ð¾Ñ\86нÑ\8bÑ\85 Ð·Ð°Ñ\82Ñ\80Ñ\8bмак Ð½Ð° Ñ\81еÑ\80веÑ\80Ñ\8b Ð±Ð°Ð· Ð´Ð°Ð½Ñ\8bÑ\85, Ð·Ð¼ÐµÐ½Ñ\8b, Ð·Ñ\80обленÑ\8bÑ\8f Ð¿Ð°Ð·Ð½ÐµÐ¹ Ñ\87Ñ\8bм $1 {{PLURAL:$1|Ñ\81ек.|Ñ\81ек.}} Ð½Ð°Ð·Ð°Ð´, Ð¼Ð¾Ð³Ñ\83Ñ\86Ñ\8c Ð½Ðµ Ñ\82Ñ\80апÑ\96Ñ\86Ñ\8c Ñ\83 Ð³Ñ\8dÑ\82Ñ\8b Ñ\81пÑ\96Ñ\81.',
 
 # Watchlist editor
 'watchlistedit-numitems' => 'У назіраным {{PLURAL:$1|1 складнік|$1 складнікаў}}, без уліку размоўных старонак.',
index a862b4a..24b1757 100644 (file)
@@ -982,7 +982,7 @@ $2
 альбо [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} рэдагаваць гэтую старонку]</span>.',
 'noarticletext-nopermission' => 'Цяпер на гэтай старонцы тэкст адсутнічае.
 Вы можаце [[Special:Search/{{PAGENAME}}|пашукаць назву гэтай старонкі]] на іншых старонках, альбо <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} пашукаць зьвязаныя запісы ў журналах]</span>, але ў вас няма дазволу ствараць гэтую старонку.',
-'missing-revision' => 'Вэрсія старонкі №$1 з назвай «{{PAGENAME}}» не існуе.
+'missing-revision' => 'Вэрсія старонкі №$1 з назвай «{{FULLPAGENAME}}» не існуе.
 
 Звычайна гэта здараецца з-за перахода па састарэлай спасылцы на старонку, якая была выдаленая.
 Падрабязнасьці можна знайсьці ў [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале выдаленьняў].',
@@ -1213,8 +1213,9 @@ $2
 'revdelete-no-file' => 'Пазначаны файл не існуе.',
 'revdelete-show-file-confirm' => 'Вы ўпэўненыя, што жадаеце паглядзець выдаленую вэрсію файла «<nowiki>$1</nowiki>» ад $2 $3?',
 'revdelete-show-file-submit' => 'Так',
-'revdelete-selected' => "'''{{PLURAL:$2|1=Выбраная вэрсія|Выбраныя вэрсіі}} старонкі [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|1=Выбраны запіс|Выбраныя запісы}} журнала:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|1=Абраная вэрсія|Абраныя вэрсіі}} [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|1=Абраная вэрсія файла|Абраныя вэрсіі файла}} [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|1=Выбраны запіс|Выбраныя запісы}} журнала:',
 'revdelete-text-text' => 'Выдаленыя вэрсіі будуць па-ранейшаму бачныя ў гісторыі старонкі, але некаторыя часткі іх зьместу будуць недаступныя для ўдзельнікаў.',
 'revdelete-text-file' => 'Выдаленыя вэрсіі файла будуць па-ранейшаму бачныя ў гісторыі старонкі, але часткі іх зьместу будуць недаступныя для ўдзельнікаў.',
 'logdelete-text' => 'Выдаленыя падзеі ў журнале будуць па-ранейшаму даступныя ў журналах, але часткі іх зьместу будуць недаступныя ўдзельнікам.',
@@ -2075,6 +2076,8 @@ $1',
 
 # List duplicated files special page
 'listduplicatedfiles' => 'Сьпіс файлаў з дублікатамі',
+'listduplicatedfiles-summary' => 'Гэта сьпіс файлаў, дзе самая апошняя вэрсія файла зьяўляецца дублікатам самай апошняй вэрсіі нейкага іншага файла. Улічваюцца толькі лякальныя файлы.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] мае [[$3|$2 {{PLURAL:$2|дублікат|дублікаты|дублікатаў}}]].',
 
 # Unused templates
 'unusedtemplates' => 'Шаблёны, якія не выкарыстоўваюцца',
index 9a3bdfc..515ca34 100644 (file)
@@ -933,7 +933,7 @@ $2
 'noarticletext' => 'Тази страница все още не съществува. Можете да [[Special:Search/{{PAGENAME}}|потърсите за заглавието на страницата]] в други страници, да <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} потърсите в дневниците] или [{{fullurl:{{FULLPAGENAME}}|action=edit}} да я създадете]</span>.',
 'noarticletext-nopermission' => 'Текущо в тази страница няма текст.
 Можете да [[Special:Search/{{PAGENAME}}|потърсите заглавието на тази страница ]] в други страници или да <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} потърсите в съответните дневници]</span>, но нямате права да създадете тази страница.',
-'missing-revision' => 'Версия #$1 на страницата „{{PAGENAME}}“ не съществува.
+'missing-revision' => 'Версия #$1 на страницата „{{FULLPAGENAME}}“ не съществува.
 
 Това обикновено се дължи на препратка от историята на страницата, която е била изтрита.
 Подробности могат да бъдат открити в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневника на изтриванията].',
@@ -1150,8 +1150,7 @@ $2
 'revdelete-no-file' => 'Посоченият файл не съществува.',
 'revdelete-show-file-confirm' => 'Необходимо е потвърждение, че желаете да прегледате изтритата версия на файла „<nowiki>$1</nowiki>“ от $2 $3.',
 'revdelete-show-file-submit' => 'Да',
-'revdelete-selected' => "'''{{PLURAL:$2|Избрана версия|Избрани версии}} от '''$1:''''''",
-'logdelete-selected' => "'''{{PLURAL:$1|Избрано събитие|Избрани събития}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Избрано събитие|Избрани събития}}:',
 'revdelete-confirm' => 'Необходимо е да потвърдите, че велаете да извършите действието, разбирате последствията и го правите според [[{{MediaWiki:Policy-url}}|политиката]].',
 'revdelete-suppress-text' => "Премахването трябва да се използва '''само''' при следните случаи:
 *Неподходяща или неприемлива лична информация
index dd24dbd..33f51b2 100644 (file)
@@ -996,8 +996,7 @@ Sawagai saurang pambakal Pian kawa nang balain ini; rarincian kawa diugai dalam
 'revdelete-no-file' => 'Barakas nang diajuakan kadada.',
 'revdelete-show-file-confirm' => 'Pian bujurkah handak maniringi sabuah ralatan tahapus matan barakas "<nowiki>$1</nowiki>" $2 pada $3?',
 'revdelete-show-file-submit' => 'Iya-ai',
-'revdelete-selected' => "'''{{PLURAL:$2|Ralatan tapilih|Raralatan tapilih}} matan [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Log kajadian tapilih|Log kakajadian tapilih}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Log kajadian tapilih|Log kakajadian tapilih}}:',
 'revdelete-confirm' => 'Muhun yakinakan bahwasa Pian handak manggawi ini, bahwasa Pian paham sabab akibat, wan bahwasa Pian manggawi ini bapandal awan [[{{MediaWiki:Policy-url}}|kaaripan]].',
 'revdelete-suppress-text' => "Panikinan parlu dipuruk gasan kakasus baumpat ini:
 * Pina kawa jadi panjalasan pitnah
index 105fb31..17b06fa 100644 (file)
@@ -517,6 +517,7 @@ $2',
 'gotaccountlink' => 'প্রবেশ',
 'userlogin-resetlink' => 'আপনার লগইনের বিস্তারিত তথ্যাদি ভুলে গেছেন?',
 'userlogin-resetpassword-link' => 'শব্দচাবি ভুলে গেছেন?',
+'userlogin-helplink2' => 'লগইন সংক্রান্ত সাহায্য',
 'userlogin-loggedin' => 'আপনি বর্তমানে {{GENDER:$1|$1}} হিসাবে লগইন আছেন।
 অন্য ব্যবহারকারী নামে লগইন করতে চাইলে নিচের ফর্মটি ব্যবহার করুন।',
 'userlogin-createanother' => 'আরেকটি অ্যাকাউন্ট তৈরি করুন',
@@ -792,7 +793,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 কিংবা [{{fullurl:{{FULLPAGENAME}}|action=edit}} এই পাতাটি সম্পাদনা করতে পারেন]</span>।',
 'noarticletext-nopermission' => 'বর্তমানে এই পাতায় কোন লেখা নেই।
 আপনি চাইলে অন্য পাতায় [[Special:Search/{{PAGENAME}}| শিরোনামটি অনুসন্ধান করতে পারেন]], অথবা <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} সম্পর্কিত লগ অনুসন্ধান করতে পারেন]</span>, কিন্তু আপনার এই পাতাটি তৈরী করার অনুমতি নেই।',
-'missing-revision' => '"{{PAGENAME}}" এর #$1তম সংস্করণটি প্রদর্শন সম্ভব নয়।
+'missing-revision' => '"{{FULLPAGENAME}}" এর #$1তম সংস্করণটি প্রদর্শন সম্ভব নয়।
 
 সাধারণত মুছে ফেলা হয়েছে এমন পাতার মেয়াদ উত্তীর্ণ ইতিহাস পাতার লিংক ওপেন করার কারণে এটি হতে পারে। 
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} অপসারণ লগে] বিস্তারিত তথ্য জানা যাবে।',
@@ -1014,8 +1015,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'revdelete-no-file' => 'নির্ধারিত ফাইলটি নেই।',
 'revdelete-show-file-confirm' => 'আপনি কি নিশ্চিত যে "<nowiki>$1</nowiki>" ফাইলের $2 তারিখের $3 টার অপসারণ লগ দেখানো হবে?',
 'revdelete-show-file-submit' => 'হ্যাঁ',
-'revdelete-selected' => "'''[[:$1]] পাতার {{PLURAL:$2|নির্বাচিত সংশোধন|নির্বাচিত সংশোধনসমূহ}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|টি নির্বাচিত লগ-ঘটনা|টি নির্বাচিত লগ-ঘটনা}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|টি নির্বাচিত লগ-ঘটনা|টি নির্বাচিত লগ-ঘটনা}}:',
 'revdelete-confirm' => 'অনুগ্রহ করে নিশ্চিত করুন যে আপনি এটি করতে চাচ্ছিলেন, আপনি এর ফলাফল সম্পর্কে অবগত আছেন, এবং [[{{MediaWiki:Policy-url}}|নীতিমালার]] উপর ভিত্তি করেই এই কাজটি করছেন।',
 'revdelete-suppress-text' => "নিচের বিষয়গুলোর ক্ষেত্রেই '''কেবলমাত্র'''  চাপাচাপি করা যাবে:
 * সম্ভাব্য মানহানিকর তথ্য
index a00db24..7ba44f0 100644 (file)
@@ -621,6 +621,7 @@ Na zisoñjit ket resisaat ho [[Special:Preferences|penndibaboù evit {{SITENAME}
 'gotaccountlink' => 'Kevreañ',
 'userlogin-resetlink' => "Ha disoñjet eo bet ho titouroù kevreañ ganeoc'h ?",
 'userlogin-resetpassword-link' => 'Ankouaet ho peus ho ker-tremen ?',
+'userlogin-helplink2' => 'Skoazell evit kevreañ',
 'userlogin-loggedin' => "Kevreet oc'h dija evel {{GENDER:$1|$1}}.
 Implijit ar furmskrid amañ dindan evit kevreañ evel un implijer all.",
 'userlogin-createanother' => 'Krouiñ ur gont all',
@@ -890,7 +891,7 @@ Gallout a rit [[Special:Search/{{PAGENAME}}|klask an titl anezhi]] e pajennoù a
 'noarticletext-nopermission' => "N'eus, evit ar mare, tamm testenn ebet war ar bajenn-mañ.
 Gallout a rit [[Special:Search/{{PAGENAME}}|klask titl ar bajenn-mañ]] war pajennoù all,
 pe <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} klask er marilhoù kar]</span>, met n'oc'h ket aotreet da grouiñ ar bajenn-mañ.",
-'missing-revision' => "N'eus ket eus adwel niv. $1 eus ar bajenn anvet « {{PAGENAME}} ».
+'missing-revision' => "N'eus ket eus adwel niv. $1 eus ar bajenn anvet « {{FULLPAGENAME}} ».
 
 C'hoarvezout a ra peurliesañ pa vez heuliet ul liamm istorel dispredet war-zu ur bajenn zo bet dilamet.
 Gallout a reot kavout muioc'h a vunudoù e [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} renabl an dilamadurioù].",
@@ -1114,8 +1115,7 @@ Gallout a ri gwelet an diforc'h-mañ ; titouroù zo war [{{fullurl:{{#Special:Lo
 'revdelete-no-file' => "N'eus ket eus ar restr spisaet ganeoc'h.",
 'revdelete-show-file-confirm' => 'Ha sur oc\'h e fell deoc\'h gwelet stumm diverket ar restr "<nowiki>$1</nowiki>" deiziataet eus an $2 da $3?',
 'revdelete-show-file-submit' => 'Ya',
-'revdelete-selected' => "'''{{PLURAL:$2|Stumm dibabet|Stummoù dibabet}} eus [[:$1]] :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Darvoud eus ar marilh diuzet|Darvoud eus ar marilh diuzet}} :'''",
+'logdelete-selected' => '{{PLURAL:$1|Darvoud eus ar marilh diuzet|Darvoud eus ar marilh diuzet}} :',
 'revdelete-confirm' => "Kadarnait eo mat an dra-se a fell deoc'h ober, e komprenit mat ar pezh a empleg, hag en grit en ur zoujañ d'ar [[{{MediaWiki:Policy-url}}|reolennoù]].",
 'revdelete-suppress-text' => "Ne zlefe an dilemel bezañ implijet <strong>nemet</strong> abalamour d'an abegoù da-heul :
 * Titouroù personel dizere
@@ -1377,6 +1377,7 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'prefs-tokenwatchlist' => 'Jedouer',
 'prefs-diffs' => "Diforc'hioù",
 'prefs-help-prefershttps' => "Efediñ a ray an dibarzh-mañ kentañ gwech ma kevreoc'h.",
+'prefs-tabs-navigation-hint' => 'Titourig : Gallout a rit implijout an touchennoù bir kleiz ha bir dehoù evit merdeiñ etre an ivinelloù e roll an ivinelloù.',
 
 # User preference: email validation using jQuery
 'email-address-validity-valid' => "Reizh eo ar chomlec'h postel war a seblant",
@@ -1563,7 +1564,7 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'recentchanges-label-plusminus' => 'Kemmet eo ment ar bajenn eus an niver-mañ a oktedoù',
 'recentchanges-legend-heading' => "'''Alc'hwez :'''",
 'recentchanges-legend-newpage' => '(gwelet ivez [[Special:NewPages|roll ar pajennoù nevez]])',
-'rcnotefrom' => "Setu aze roll ar c'hemmoù c'hoarvezet abaoe an '''$2''' ('''$1''' d'ar muiañ).",
+'rcnotefrom' => "Setu aze roll ar c'hemmoù c'hoarvezet abaoe an <strong>$2</strong> (<strong>$1</strong> d'ar muiañ).",
 'rclistfrom' => "Diskouez ar c'hemmoù diwezhañ abaoe an $1.",
 'rcshowhideminor' => "$1 ar c'hemmoù dister",
 'rcshowhideminor-show' => 'Diskouez',
@@ -1706,6 +1707,7 @@ Mar fell deoc'h enporzhiañ ar restr-mañ da vat, kit war ho kiz hag enporzhiit
 'uploaddisabledtext' => 'Diweredekaet eo an enporzhiañ restroù.',
 'php-uploaddisabledtext' => 'Diweredekaet eo bet ar pellgargañ e PHP. Gwiriit an dibarzh arventennoù file_uploads.',
 'uploadscripted' => "Er restr-mañ ez eus kodoù HTML pe skriptoù a c'hallfe bezañ kammgomprenet gant ur merdeer Kenrouedad.",
+'uploadinvalidxml' => "N'eus ket bet gallet dielfennañ an XML er restr ezporzhiet.",
 'uploadvirus' => 'Viruzet eo ar restr! Titouroù : $1',
 'uploadjava' => "Ur restr ZIP a ra gant Java .class eo homañ.
 N'haller ket enporzhiañ restroù Java peogwir e c'haller mont dreist da vevennoù surentez ganto.",
@@ -2536,8 +2538,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => "Stanket eo ar chomlec'h IP-mañ evit ar mare.
 Dindan emañ merket enmont diwezhañ marilh ar stankadennoù, d'ho kelaouiñ :",
 'sp-contributions-search' => 'Klask degasadennoù',
+'sp-contributions-suppresslog' => 'degasadennoù diverket un implijer',
 'sp-contributions-username' => "Anv implijer pe chomlec'h IP :",
 'sp-contributions-toponly' => 'Na ziskouez nemet an adweladennoù diwezhañ',
+'sp-contributions-newonly' => 'Diskouez an aozadennoù a zo krouidigezhioù pajennoù hepken',
 'sp-contributions-submit' => 'Klask',
 
 # What links here
@@ -2657,7 +2661,7 @@ Setu amañ perak $1 : "$2"',
 'range_block_disabled' => "Diweredekaet eo bet ar stankañ stuc'hadoù IP.",
 'ipb_expiry_invalid' => 'amzer termen direizh.',
 'ipb_expiry_temp' => "Peurbadus e rank bezañ bloc'hadoù an implijerien guzh.",
-'ipb_hide_invalid' => 'Dibosupl diverkañ ar gont-mañ; evit doare ez eus bet graet re a gemmoù enni.',
+'ipb_hide_invalid' => "Ne c'haller ket dilemel ar gont-mañ : Ouzhpenn {{PLURAL:$1|ur c'hemm|$1 kemm}} zo enni.",
 'ipb_already_blocked' => 'Stanket eo "$1" dija',
 'ipb-needreblock' => "Stanket eo $1 c'hoazh. Kemmañ an arventennoù a fell deoc'h ?",
 'ipb-otherblocks-header' => '{{PLURAL:$1|Stankadenn|Stankadnenoù}} all',
@@ -3034,6 +3038,7 @@ Sur a-walc'h abalamour d'ul liamm enni a gas d'ul lec'hienn ziavaez berzet.",
 'pageinfo-length' => 'Ment ar bajenn (en oktedoù)',
 'pageinfo-article-id' => 'Niverenn ar bajenn',
 'pageinfo-language' => 'Yezh ar bajenn',
+'pageinfo-content-model' => "Patrom endalc'had ar bajenn",
 'pageinfo-robot-policy' => 'Menegeriñ gant robotoù',
 'pageinfo-robot-index' => 'Aotreet',
 'pageinfo-robot-noindex' => 'Diaotreet',
@@ -4033,14 +4038,18 @@ A-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc
 'rotate-comment' => 'Skeudenn troet eus $1 {{PLURAL:$1|derez}} a-du gant an heol',
 
 # Limit report
+'limitreport-title' => 'Roadennoù da wellekaat an dielfenner :',
 'limitreport-cputime' => 'Amzer implij ar CPU',
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|eiladenn}}',
 'limitreport-walltime' => 'Amzer implij gwirion',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|eiladenn}}',
+'limitreport-ppvisitednodes' => 'Niver a skoulmoù rakprosesor gweladennet',
+'limitreport-ppgeneratednodes' => 'Niver a skoulmoù rakprosesor ganet',
 'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|okted}}',
 'limitreport-templateargumentsize' => 'Ment arguzenn ar patrom',
 'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|okted}}',
 'limitreport-expansiondepth' => 'Donder astenn brasañ',
+'limitreport-expensivefunctioncount' => "Niver a arc'hwelioù dielfennañ koustus",
 
 # Special:ExpandTemplates
 'expandtemplates' => 'Emled ar patromoù',
@@ -4052,6 +4061,7 @@ Astenn a ra ivez an arc'hwelioù parser evel
 'expand_templates_input' => 'Merkañ ho testenn amañ :',
 'expand_templates_output' => "Disoc'h",
 'expand_templates_xml_output' => 'Ezvont XML',
+'expand_templates_html_output' => "Disoc'h HTML kriz",
 'expand_templates_ok' => 'Mat eo',
 'expand_templates_remove_comments' => 'Lemel an notennoù kuit',
 'expand_templates_remove_nowiki' => "Diverkañ a ra ar balizennoù <nowiki> en disoc'h",
index 700f774..6b53230 100644 (file)
@@ -980,7 +980,7 @@ Možete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim s
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tražiti u povezanim zapisima] ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.',
 'noarticletext-nopermission' => 'Trenutno nema teksta na ovoj stranici.
 Možete [[Special:Search/{{PAGENAME}}|tražiti ovaj naslov stranice]] na drugim stranicama ili <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane zapisnike]</span>, ali nemate dozvolu da napravite ovu stranicu.',
-'missing-revision' => 'Uređivanje broj $1 na stranici "{{PAGENAME}}" ne postoji.
+'missing-revision' => 'Uređivanje broj $1 na stranici "{{FULLPAGENAME}}" ne postoji.
 
 Ovo se obično dešava kada pratite zastarjelu vezu na stranice koja je obrisana.
 Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokol brisanja].',
@@ -1212,8 +1212,7 @@ Vi možete vidjeti ovu razliku; detalji se mogu vidjeti u [{{fullurl:{{#Special:
 'revdelete-no-file' => 'Navedena datoteka ne postoji.',
 'revdelete-show-file-confirm' => 'Da li ste sigurni da želite pogledati obrisanu reviziju datoteke "<nowiki>$1</nowiki>" od $2 u $3?',
 'revdelete-show-file-submit' => 'Da',
-'revdelete-selected' => "'''{{PLURAL:$2|Odabrana revizija|Odabrane revizije}} od [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Označena stavka zapisa|Označene stavke zapisa}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Označena stavka zapisa|Označene stavke zapisa}}:',
 'revdelete-confirm' => 'Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Ograničenja bi trebala biti korištena '''samo''' u slijedećim slučajevima:
 * Osjetljive korisničke informacije
index 70d3afb..a4a652a 100644 (file)
@@ -917,7 +917,7 @@ Podeu [[Special:Search/{{PAGENAME}}|cercar aquest títol]] en altres pàgines,
 o [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear-la ara]</span>.',
 'noarticletext-nopermission' => 'Actualment no hi ha text en aquesta pàgina.
 Podeu [[Special:Search/{{PAGENAME}}|cercar aquest títol]] en altres pàgines o bé <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercar en els registres relacionats]</span>, però no teniu permisos per crear la pàgina.',
-'missing-revision' => 'La revisió núm. $1 de la pàgina anomenada «{{PAGENAME}}» no existeix.
+'missing-revision' => 'La revisió núm. $1 de la pàgina anomenada «{{FULLPAGENAME}}» no existeix.
 
 Normalment això ocorre quan seguiu un enllaç d’historial desactualitzat que apunta a una pàgina que s’ha suprimit.
 Podeu trobar detalls en el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registre de supressions].',
@@ -1148,8 +1148,7 @@ funció, la revisió especificada no existeix, o bé esteu provant d'amagar l'ac
 'revdelete-no-file' => 'El fitxer especificat no existeix.',
 'revdelete-show-file-confirm' => 'Esteu segurs que voleu veure una revisió esborrada del fitxer «<nowiki>$1</nowiki>» de $2 a $3?',
 'revdelete-show-file-submit' => 'Sí',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisió seleccionada|Revisions seleccionades}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Esdeveniment del registre seleccionat|Esdeveniments del registre seleccionats}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Esdeveniment del registre seleccionat|Esdeveniments del registre seleccionats}}:',
 'revdelete-confirm' => "Si us plau, confirmeu que és això el que desitgeu fer, que enteneu les conseqüències, i que esteu fent-ho d'acord amb [[{{MediaWiki:Policy-url}}|les polítiques acordades]].",
 'revdelete-suppress-text' => "Les supressions '''només''' han de ser portades a terme en els següents casos:
 * Informació potencialment difamatòria
index 0da33fa..882c0dc 100644 (file)
@@ -997,7 +997,7 @@ $2
 'noarticletext-nopermission' => 'ХӀокх хан чохь кху агӀонца йоза дац.
 Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цӀе]] кхечу яззамашкахь,
 йа <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лаха оцуьнах терадерг кхечу тептаршкахь].</span>',
-'missing-revision' => 'АгӀона «{{PAGENAME}}» верси $1 яц.
+'missing-revision' => 'АгӀона «{{FULLPAGENAME}}» верси $1 яц.
 
 Ишта хуьйла ширелла дӀаяьккхина агӀонан хьажораган дихьа делча.
 Ма-дара хила мега [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀайаьхарш йолу тептар] чохь.',
@@ -1158,8 +1158,7 @@ $2
 'revdelete-no-file' => 'Иштта файл яц.',
 'revdelete-show-file-confirm' => 'Бакъалла лаьий хьуна дӀаяьккхина файлан версега хьажа «<nowiki>$1</nowiki>» $2 тӀера, $3?',
 'revdelete-show-file-submit' => 'Хlаъ',
-'revdelete-selected' => "'''АгӀона [[:$1]] {{PLURAL:$2|1=къастина верси|къастина версеш}}:'''",
-'logdelete-selected' => '<strong>Тептар чура {{PLURAL:$1|хаьржина дӀаяздар|хаьржина дӀаяздарш}}:</strong>',
+'logdelete-selected' => 'Тептар чура {{PLURAL:$1|хаьржина дӀаяздар|хаьржина дӀаяздарш}}:',
 'revdelete-confirm' => 'Дехар до, бакъдар ахьа деш дерг [[{{MediaWiki:Policy-url}}|бакъонашца]] деш хилар.',
 'revdelete-legend' => 'Доза тохар',
 'revdelete-hide-text' => 'Къайладаккха хӀокху агӀона чура йоза',
@@ -2131,7 +2130,7 @@ $1',
 'unwatchthispage' => 'ДӀадаккха терго яр',
 'notanarticle' => 'Бац яззам',
 'notvisiblerev' => 'Верси дӀаяьккхина хила',
-'watchlist-details' => 'Хьан тергаме могlамца $1 {{PLURAL:$1|агlо|агlонаш|агlонаш}} ю, дийцаре агlонаша йоцуш.',
+'watchlist-details' => 'Хьан тергаме могӀамца $1 {{PLURAL:$1|агӀо|агонаш}} ю, дийцаре агӀонаша йоцуш.',
 'wlheader-enotif' => 'Электронан почте хаамаш байтар латина ду.',
 'wlheader-showupdated' => "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
 'wlnote2' => 'Лахахьа гайтина {{PLURAL:$1|тӀеххьара сахьт}} чохь бина хийцамаш $2 $3.',
index 5e211f9..cff6fbe 100644 (file)
@@ -606,8 +606,7 @@ Isip tagdumala, puyde nimo [$1 tan-awon ang diff] kon gusto ka magpadayon.",
 'revdelete-no-file' => 'Ang gi-specify nga payl wala pa.',
 'revdelete-show-file-confirm' => 'Sigurado ka nga gusto nimong tan-awon ang napapas nga rebisyon sa payl "<nowiki>$1</nowiki>" sugod sa $2 sa $3?',
 'revdelete-show-file-submit' => 'Oo',
-'revdelete-selected' => "'''{{PLURAL:$2|Napiling rebisyon|Napiling mga rebisyon}} sa [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Napiling log event|Mga napiling log event}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Napiling log event|Mga napiling log event}}:',
 'revdelete-suppress-text' => "Ang supresyon gamiton '''lamang''' asa mga mosunod nga kaso:
 * Dili maayo nga personal nga impormasyon
 *: ''adres sa panimalay ug numero sa telepono, social security number, ubp.''",
index b94ada1..7592e0c 100644 (file)
@@ -557,8 +557,7 @@ Komu administradot {{SITENAME}} siña un atan ha';
 fana'an guåha attikulo gi [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} log muna'susuha].",
 'rev-delundel' => "na'annok/nå'na'",
 'revisiondelete' => "Na'suha/para håfa muna'suha i tinilaika",
-'revdelete-selected' => "'''{{PLURAL:$2|Tinilaika ma'ayek|Tinilaika manma'ayek}} gi [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Kasun log ni ma'ayek|Kasun log ni manma'ayek}}:'''",
+'logdelete-selected' => "{{PLURAL:$1|Kasun log ni ma'ayek|Kasun log ni manma'ayek}}:",
 'revdelete-legend' => "Po'lo i chinemma' lini'e'on siha",
 'revdelete-hide-text' => "Nå'na' i tinige' ribision",
 'revdelete-hide-image' => "Nå'na' i sinahguan atkibu",
index df3eeb2..eab1f51 100644 (file)
@@ -1092,8 +1092,7 @@ $3 هۆکاری "$2" خستوەتەڕوو',
 'revdelete-no-file' => 'ئەو پەڕگەی ڕاچاوت کردووە بوونی نیە.',
 'revdelete-show-file-confirm' => 'ئایا دڵنیایت دەتەوێ پێداچوونەوەی سڕاوەی پەڕگەی "<nowiki>$1</nowiki>" لە $2، لە $3دا ببیینی؟',
 'revdelete-show-file-submit' => 'بەڵێ',
-'revdelete-selected' => "'''{{PLURAL:$2|پێداچوونەوەی هەڵبژێراوی|پێداچوونەوەکانی هەڵبژێراوی}} [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|لۆگی ڕووداوەی هەڵبژێراو|لۆگی ڕووداوە هەڵبژێراوەکان}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|لۆگی ڕووداوەی هەڵبژێراو|لۆگی ڕووداوە هەڵبژێراوەکان}}:',
 'revdelete-confirm' => 'تکایە بەڵێن بدە کە دەتەوێ ئەوە بکەی و لە ئەنجامەکانی ئەوە ئاگاداریت و بە پێی [[{{MediaWiki:Policy-url}}|سیاسەتنامە]] ئەنجامی ئەدەی.',
 'revdelete-suppress-text' => "بەرگری دەبێ '''تەنها''' بۆ ئەم بابەتانە بەکاربهێندرێت:<br />
 * سووکایەتیکردن بە کەسایەتییەک<br />
index 173f523..cd498c3 100644 (file)
@@ -185,7 +185,6 @@ $messages = array(
 'currentevents-url' => 'Project:Ultimi evenimenti',
 'disclaimers' => 'Avvertimenti',
 'disclaimerpage' => 'Project:Avertimenti generali',
-'helppage' => 'Help:Cuntenutu',
 'mainpage' => 'Pagina maestra',
 'mainpage-description' => 'Pagina maestra',
 'portal' => 'Purtone di a cumunità',
index 1419b00..a3c8048 100644 (file)
@@ -1089,7 +1089,7 @@ Pokud jste zde omylem, stiskněte ve svém prohlížeči tlačítko <strong>Zpě
 Můžete [[Special:Search/{{PAGENAME}}|zkusit tento název vyhledat]] na jiných stránkách, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} prohlédnout si příslušné protokolovací záznamy] nebo [{{fullurl:{{FULLPAGENAME}}|action=edit}} tuto stránku založit]</span>.',
 'noarticletext-nopermission' => 'Tato stránka zatím neobsahuje žádný text.
 Můžete [[Special:Search/{{PAGENAME}}|zkusit tento název vyhledat]] na jiných stránkách nebo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} si prohlédnout příslušné protokolovací záznamy]</span>, ale na založení této stránky nemáte oprávnění.',
-'missing-revision' => 'Revize #$1 stránky s názvem „{{PAGENAME}}“ neexistuje.
+'missing-revision' => 'Revize #$1 stránky s názvem „{{FULLPAGENAME}}“ neexistuje.
 
 Toto je obvykle způsobeno tím, že jste následovali zastaralý odkaz historickou verzi stránky, jež byla smazána.
 Podrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} knize smazaných stránek].',
@@ -1316,8 +1316,9 @@ Můžete si toto porovnání prohlédnout; podrobnosti jsou uvedeny v [{{fullurl
 'revdelete-no-file' => 'Uvedený soubor neexistuje.',
 'revdelete-show-file-confirm' => 'Určitě si chcete prohlédnout smazanou revizi souboru „<nowiki>$1</nowiki>“ z $2, $3?',
 'revdelete-show-file-submit' => 'Ano',
-'revdelete-selected' => "'''{{PLURAL:$2|Vybraná|Vybrané}} revize stránky [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Vybraná protokolovaná událost|Vybrané protokolované události}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Vybraná|Vybrané}} revize stránky [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Vybraná|Vybrané}} verze souboru [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Vybraná protokolovaná událost|Vybrané protokolované události}}:',
 'revdelete-text-text' => 'Smazané editace se budou i nadále zobrazovat v historii stránky, ale části jejich obsahu nebudou veřejně přístupné.',
 'revdelete-text-file' => 'Smazané verze souborů se budou i nadále zobrazovat v historii stránky, ale části jejich obsahu nebudou veřejně přístupné.',
 'logdelete-text' => 'Smazané protokolovací záznamy se budou i nadále zobrazovat v historii stránky, ale části jejich obsahu nebudou veřejně přístupné.',
@@ -2177,6 +2178,11 @@ Vstup: <code>typ obsahu/podtyp</code>, např. <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Seznam přesměrování',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Seznam souborů s duplikáty',
+'listduplicatedfiles-summary' => 'Toto je seznam souborů, u kterých je aktuální revize duplikátem aktuální revize nějakého jiného souboru. Do úvahy se berou jen lokální soubory.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] má [[$3|$2 {{PLURAL:$2|duplikát|duplikáty|duplikátů}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Nepoužívané šablony',
 'unusedtemplatestext' => 'Tato stránka obsahuje seznam všech stran ve jmenném prostoru {{ns:template}}, které nejsou vloženy do žádné jiné strany. Před jejich smazáním nezapomeňte zkontrolovat ostatní odkazy.',
index e4fb127..f918287 100644 (file)
@@ -822,7 +822,7 @@ Os daethoch yma ar ddamwain, cliciwch botwm '''n&ocirc;l''' y porwr.",
 Gallwch [[Special:Search/{{PAGENAME}}|chwilio am y teitl hwn]] ar dudalennau eraill, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} chwilio drwy'r logiau perthnasol], neu [{{fullurl:{{FULLPAGENAME}}|action=edit}} golygu'r dudalen]</span>.",
 'noarticletext-nopermission' => "Mae'r dudalen hon yn wag ar hyn o bryd.
 Gallwch [[Special:Search/{{PAGENAME}}|chwilio am y teitl hwn]] ar dudalennau eraill, neu gallwch <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} chwilio drwy'r logiau perthnasol]</span>, ond nid yw'r gallu gennych i ddechrau'r dudalen o'r dechrau cyntaf.",
-'missing-revision' => 'Nid yw\'r diwygiad #$1 o\'r dudalen "{{PAGENAME}}" ar gael.
+'missing-revision' => 'Nid yw\'r diwygiad #$1 o\'r dudalen "{{FULLPAGENAME}}" ar gael.
 
 Fel arfer, fe ddigwydd hyn wrth ddilyn hen gyswllt i dudalen sydd wedi ei dileu.
 Gallwch weld y manylion yn y [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} lòg dileu].',
@@ -1053,8 +1053,7 @@ Serch hyn, gallwch eu cymharu o hyd; cewch weld y manylion ar y [{{fullurl:{{#Sp
 'revdelete-no-file' => "Nid yw'r ffeil a nodwyd yn bod.",
 'revdelete-show-file-confirm' => 'Ydych chi\'n sicr eich bod am weld y diwygiad dilëedig o\'r ffeil "<nowiki>$1</nowiki>" a roddwyd ar gadw am $3 ar $2?',
 'revdelete-show-file-submit' => 'Ydw',
-'revdelete-selected' => "'''Y {{PLURAL:$2|golygiad|golygiad|golygiadau|golygiadau|golygiadau|golygiadau}} dewisedig o [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Digwyddiad|Digwyddiad|Digwyddiadau|Digwyddiadau|Digwyddiadau|Digwyddiadau}} a ddewiswyd o'r lòg:'''",
+'logdelete-selected' => "{{PLURAL:$1|Digwyddiad|Digwyddiad|Digwyddiadau|Digwyddiadau|Digwyddiadau|Digwyddiadau}} a ddewiswyd o'r lòg:",
 'revdelete-confirm' => "Byddwch gystal â chadarnhau eich bod yn bwriadu gwneud hyn, eich bod yn deall yr effaith a gaiff, a'ch bod yn ei wneud yn ôl y [[{{MediaWiki:Policy-url}}|y polisi]].",
 'revdelete-suppress-text' => "'''Dim ond''' yn yr achosion sy'n dilyn y dylech fentro cuddio gwybodaeth:
 * Gwybodaeth a all fod yn enllib
index 7aa79d8..b49ee8d 100644 (file)
@@ -920,7 +920,7 @@ eller [{{fullurl:{{FULLPAGENAME}}|action=edit}} oprette siden]</span>.',
 Du kan [[Special:Search/{{PAGENAME}}|søge efter sidenavnet]] på andre sider,
 eller <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søge i relaterede loglister]</span>,
 men du har ikke tilladelse til at oprette denne side.',
-'missing-revision' => 'Revision #$1 af siden med navnet "{{PAGENAME}}" eksisterer ikke.
+'missing-revision' => 'Revision #$1 af siden med navnet "{{FULLPAGENAME}}" eksisterer ikke.
 
 Dette skyldes normalt at et forældet historik-link er fulgt til en side der er slettet.
 Detaljer kan findes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletningsloggen].',
@@ -1144,8 +1144,7 @@ Du kan se denne forskel; der kan findes detaljer i [{{fullurl:{{#Special:Log}}/s
 'revdelete-no-file' => 'Den angivne fil findes ikke.',
 'revdelete-show-file-confirm' => 'Er du sikker på, at du vil vise en slettet version af filen "<nowiki>$1</nowiki>" fra den $2, klokken $3?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Valgte version|Valgte versioner}} af '''$1:''''''",
-'logdelete-selected' => "'''{{PLURAL:$1|Valgt logindførsel|Valgte logindførsler}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Valgt logindførsel|Valgte logindførsler}}:',
 'revdelete-confirm' => 'Vær venlig at bekræfte at du vil gøre dette, at du forstår konsekvenserne, og at du gør det i overensstemmelse med [[{{MediaWiki:Policy-url}}|retningslinjerne]].',
 'revdelete-suppress-text' => "Der bør '''kun''' skjules i de følgende tilfælde:
 * Potentielt injurierende oplysninger
index 99e64e5..c4f42d4 100644 (file)
@@ -1153,7 +1153,7 @@ ihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]]
 oder die zugehörigen <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten]</span>.',
 'noarticletext-nopermission' => 'Diese Seite enthält momentan noch keinen Text, du bist auch nicht berechtigt diese Seite zu erstellen.
 Du kannst ihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]] oder die zugehörigen <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten].</span>',
-'missing-revision' => 'Die Version $1 der Seite namens „{{PAGENAME}}“ ist nicht vorhanden.
+'missing-revision' => 'Die Version $1 der Seite namens „{{FULLPAGENAME}}“ ist nicht vorhanden.
 
 Dieser Fehler wird normalerweise von einem veralteten Link zur Versionsgeschichte einer Seite verursacht, die zwischenzeitlich gelöscht wurde.
 Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch] einsehbar.',
@@ -1380,8 +1380,9 @@ Du kannst diesen Versionsunterschied einsehen, sofern du möchtest. Nähere Anga
 'revdelete-no-file' => 'Die angegebene Datei ist nicht vorhanden.',
 'revdelete-show-file-confirm' => 'Bist du sicher, dass du die gelöschte Version der Datei „<nowiki>$1</nowiki>“ vom $2 um $3 Uhr ansehen willst?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Gewählte Version|Gewählte Versionen}} von [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Gewählter Logbucheintrag|Gewählte Logbucheinträge}}:'''",
+'revdelete-selected-text' => 'Ausgewählte {{PLURAL:$1|Version|Versionen}} von [[:$2]]:',
+'revdelete-selected-file' => 'Ausgewählte {{PLURAL:$1|Dateiversion|Dateiversionen}} von [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Gewählter Logbucheintrag|Gewählte Logbucheinträge}}:',
 'revdelete-text-text' => 'Gelöschte Versionen verbleiben noch in der Versionsgeschichte, jedoch sind Teile ihres Inhalts für die Öffentlichkeit nicht zugänglich.',
 'revdelete-text-file' => 'Gelöschte Dateiversionen verbleiben noch in der Datei-Versionsgeschichte, jedoch sind Teile ihres Inhalts für die Öffentlichkeit nicht zugänglich.',
 'logdelete-text' => 'Gelöschte Logbucheinträge verbleiben noch in den Logbüchern, jedoch sind Teile ihres Inhalts für die Öffentlichkeit nicht zugänglich.',
index f2287f5..39a2b61 100644 (file)
@@ -1054,7 +1054,7 @@ Tı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernamey
 ya zi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ena pele bıvurne]</span>.',
 'noarticletext-nopermission' => 'Ena pele de hewna theba çıniyo.
 Tı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernameyê na pele cı geyre]], ya zi <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre]</span>, ema destur çıniyo ke na pele vırazê.',
-'missing-revision' => 'Rewizyonê name dê pela da #$1 "{{PAGENAME}}" dı çıniyo.
+'missing-revision' => 'Rewizyonê name dê pela da #$1 "{{FULLPAGENAME}}" dı çıniyo.
 
 No normal de tarix dê pelanê besterneyan dı ena xırabin asena.
 Detayê besternayışi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} tiya dı] aseno.',
@@ -1274,8 +1274,7 @@ Eke şıma serkari u devam bıkeri [$1 no vurnayiş şıma eşkeni bıvini].",
 'revdelete-no-file' => 'Dosya diyarkerdiye çıniya.',
 'revdelete-show-file-confirm' => 'Şıma eminê ke wazenê çımraviyarnayışê esterıtey na dosya "<nowiki>$1</nowiki>" $2 ra $3 de bıvênê?',
 'revdelete-show-file-submit' => 'E',
-'revdelete-selected' => "'''[[:$1]]: ra {{PLURAL:$2|çımraviyarnayışo weçinıte|çımraviyarnayışê weçinıtey}}'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Qeydbiyayışo weçinıte|Qeydbiyayışê weçinıtey}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Qeydbiyayışo weçinıte|Qeydbiyayışê weçinıtey}}:',
 'revdelete-confirm' => 'Ma rica keno testiq bike ti ena hereket keno u ti zano neticeyanê herketanê xo u ti ena hereket pê ena [[{{MediaWiki:Policy-url}}|polici]] ra keno.',
 'revdelete-suppress-text' => "Wedardış gani '''tenya''' nê halanê cêrênan de bıxebıtiyo:
 * Melumatê kıfırio mıhtemel
index fb43554..0c4bfbb 100644 (file)
@@ -861,7 +861,7 @@ Aby bok napórał, zapiš do kašćika dołojce (glědaj [$1 bok pomocy] za dal
 'noarticletext-nopermission' => 'Tuchylu njejo žeden tekst na toś tom boku.
 Móžoš [[Special:Search/{{PAGENAME}}|toś ten bokowy titel]] na drugich bokach pytaś
 abo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} wótpowědne protokole pytaś]</span>, ale njamaš pšawo, toś ten bok napóraś.',
-'missing-revision' => 'Wersija #$1 boka z mjenim "{{PAGENAME}}" njeeksistěrujo.
+'missing-revision' => 'Wersija #$1 boka z mjenim "{{FULLPAGENAME}}" njeeksistěrujo.
 
 Pśicyna jo zwětšego zestarjony wótkaz w historiji k bokoju, kótaryž jo se wulašował.
 Drobnostki móžoš w  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokolu wulašowanjow] namakaś.',
@@ -1083,8 +1083,9 @@ Móžoš se toś ten rozdźěl woglědaś; drobnostki glědaj w [{{fullurl:{{#Sp
 'revdelete-no-file' => 'Pódana dataja njeeksistěrujo.',
 'revdelete-show-file-confirm' => 'Coš se napšawdu wulašowanu wersiju dataje "<nowiki>$1</nowiki>" wót $2 $3 woglědaś?',
 'revdelete-show-file-submit' => 'Jo',
-'revdelete-selected' => "'''{{PLURAL:$2|Wuzwólona wersija|Wuzwólonej wersiji|Wuzwólone wersije}} wót [[:$1]].'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Wuzwólony protokolowe tšojenje|Wuzwólonej protokolowe tšojeni|wuzwólone protokolowe tšojenja}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Wubrana wersija|Wubranej wersiji|Wubrane wersije}} wót [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Wubrana datajowa wersija|Wubranej datajowej wersiji|Wubrane datajowe wersije}} wót [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Wuzwólony protokolowe tšojenje|Wuzwólonej protokolowe tšojeni|wuzwólone protokolowe tšojenja}}:',
 'revdelete-text-text' => 'Wulašowane wersije wóstanu hyšći we wersijowej historiji, ale źěle jich wopśimjeśa njebudu pśistupne zjawnosći.',
 'revdelete-text-file' => 'Wulašowane datajowe wersije wóstanu w datajowej historiji, ale źěle jich wopśimjeśa njebudu pśistupne zjawnosći.',
 'logdelete-text' => 'Wulašowane protokolowe zapiski wóstanu hyšći w protokolach, ale źěle jich wopśimjeśa njebudu pśistupne zjawnosći.',
@@ -1939,6 +1940,11 @@ Snaź coš wopisanje na jeje [$2 boku datajowego wopisanja] wobźěłaś.',
 # List redirects
 'listredirects' => 'Lisćina dalejpósrědnjenjow',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lisćina datajow z duplikatami',
+'listduplicatedfiles-summary' => 'To jo lisćina datajow, źož nejnowša wersija dataje jo duplikat nejnowšeje wersije někakeje drugeje dataje. Jano lokalne dataje se zapśimuju.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] ma [[$3|{{PLURAL:$2|duplikat|$2 duplikata|$2 duplikaty|$2 duplikatow}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Njewužywane pśedłogi',
 'unusedtemplatestext' => 'Toś ten bok nalicujo wšykne boki w mjenjowom rumje {{ns:template}}, kótarež njejsu do žednogo drugego boka zawězane. Pšosym kontrolěruj dalšne wótkaze, nježli až je wulašujoš.',
index 1ba0cf7..ad50c61 100644 (file)
@@ -812,8 +812,7 @@ Milo ko do montong diti; kointalangan oihum id [{{fullurl:{{#Special:Log}}/suppr
 'revdelete-no-file' => 'Pail pinotontu awu poinsuang.',
 'revdelete-show-file-confirm' => 'Mongintong ko di sinimakan nopugas do pail  "<nowiki>$1</nowiki>" mantad $2 ontok $3?',
 'revdelete-show-file-submit' => 'O',
-'revdelete-selected' => "'''{{PLURAL:$2|Sinimakan pinili|Sinimakan nopili}} id [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Log kinaantakan nopili|Tongolog kinaantakan it nopili}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Log kinaantakan nopili|Tongolog kinaantakan it nopili}}:',
 'revdelete-legend' => 'Uludo pogigihum pangangantob',
 'revdelete-hide-text' => 'Polisoko sinimakan tiik',
 'revdelete-hide-image' => 'Polisoko suang pail',
index 5d0280a..8a20709 100644 (file)
@@ -450,6 +450,7 @@ Guêrda che soquânti pàgini a prén vèdres incòra cme s'ét fós incòra col
 'gotaccountlink' => 'Và dèinter',
 'userlogin-resetlink' => "T'ét scurdê j elemèint p'r al tó ingrès?",
 'userlogin-resetpassword-link' => "T' ét scurdê la cêva 'd ingrès?",
+'userlogin-helplink2' => "Ajót per l'ingrès",
 'userlogin-loggedin' => "T'ét bèle coleghê {{GENDER:$1|$1}}. 
 Drōva al mōdul ché sòta cme un êter utèint.",
 'userlogin-createanother' => "Fà 'n' êtra utèinsa.",
@@ -557,6 +558,9 @@ La cêva 'd ingrès la pré èser stêda bèle cambiêda, opór n'in pré èser
 'resetpass-abort-generic' => "La mudéfica 'd la cêva 'd ingrès l'é stêda fermêda da un şlungamèint.",
 'resetpass-expired' => "La cêva 'd ingrès l'é scadûda. Mèt dèinter 'na cêva 'd ingrès nōva per fêr l'ingrès.",
 'resetpass-expired-soft' => "La tó cêva 'd ingrès l'é scadûda. T'é perghê ed siēlier 'na nōva o clichêr insém a \"{{int:resetpass-submit-cancel}}\" per turnêrla a mèter dèinter in sègvit.",
+'resetpass-validity-soft' => "La tó cêva 'd ingrès an n'è mìa vâlida:\$1. 
+
+T'é perghê ed siēlier 'na nōva o clichêr insém a \"{{int:resetpass-submit-cancel}}\" per turnêrla a impustêr in sègvit.",
 
 # Special:PasswordReset
 'passwordreset' => "Câmbia la cêva 'd ingrès",
@@ -687,7 +691,7 @@ Per impustêr e cunfermêr l'indirés dervîres dal [[Special:Preferences|prefer
 'anontalkpagetext' => "----'' Còsta l'è la pàgina 'd discusiòun ed 'n utèint sèinsa nòm, ch' an n' à mìa incòra fât 'n' utèinsa o in tót al manēri an n'è mìa drē druvêrla. Per arcgnòsrel l'è dòunca necesâri druvê al só indirés IP. J indirés IP a pōlen èser spartî cun êter utèint. Se t'è un utèint sèinsa nòm e 't pèins che i cumèint in cla pàgina ché an riguêrden mìa tè, [[Special:UserLogin/signup|fa 'n' utèinsa nōva]] o [[Special:UserLogin|vîn dèinter cun còla ch' ét gh'ê bèle]] per schivşêr, in futûr,  'd èser cunfûş cun 'd j êter utèint sèinsa nòm.''",
 'noarticletext' => 'In cól mumèint ché la pàgina serchêda l\'é vōda. L\'é pusébil [[Special:Search/{{PAGENAME}}|serchêr sté tétol]] int al j êtri pàgini dal sît, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} serchêr int i regéster coleghê] opór  [{{fullurl:{{FULLPAGENAME}}|action=edit}} mudifichêr la pàgina adèsa]</span>.',
 'noarticletext-nopermission' => "In cól mumèint ché la pàgina serchêda l'é vōda. L'é pusébil [[Special:Search/{{PAGENAME}}|serchêr sté tétol]] int al j êtri pàgini dal sît o<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} serchêr int i regéster coleghê] <span>, mó an 't gh'ê mìa al permès ed fêr cla pàgina ché.",
-'missing-revision' => "La revişiòun #\$1 'd la pagina \"{{PAGENAME}}\" l' an gh'è mìa. Còst, ed sôlit, a sucēd mèint'r as va drē a 'n colegamèint a 'na pàgina scanşlêda, in 'na stòria, di lavōr fât, mìa arnuvêda. I particulêr a 's pōlen catêr int al [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} regéster dal scanşladûri].",
+'missing-revision' => "La revişiòun #\$1 'd la pagina \"{{FULLPAGENAME}}\" l' an gh'è mìa. Còst, ed sôlit, a sucēd mèint'r as va drē a 'n colegamèint a 'na pàgina scanşlêda, in 'na stòria, di lavōr fât, mìa arnuvêda. I particulêr a 's pōlen catêr int al [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} regéster dal scanşladûri].",
 'userpage-userdoesnotexist' => 'L\'inscrisiòun "<nowiki>$1</nowiki>" la cumbîna mìa cun \'n utèint registrê. Ét sicûr ed vrèir fêr o mudifichêr cla pàgina ché.',
 'userpage-userdoesnotexist-view' => 'L\'utèin "$1" an n\'à mìa fât l\'inscrisiòun.',
 'blocked-notice-logextract' => "Cl'utèint ché adèsa l'é bluchê. 
@@ -733,10 +737,28 @@ S'es pèinsa ed salvêrla, tót i cambiamèint fât dōp cla mudéfica ché andr
 'copyrightwarning' => "Per piaşèir tîn cûnt che tót al colaborasiòun a {{SITENAME}} a vînen cunsidrêdi publichêdi sòta la licèinsa $2 (per i particulêr guêrda $1). S' an 't vō mìa che i tō tèst a pôsen èser cambiê e turnê a publichêr da tót sèinsa lémit, an publichêri mìa ché.<br /> In pió, se 't  i póblich ché, a 't dichiâr, sòta la tó responsabilitê, che còl ch' è stê scrét a 't l'ê scrét té personalmèint opór l'é ste cupiê da documèint sèinsa ch' al sìa quacê da nisûn dirét 'd autōr. <strong> Ché insém an pubblichêr mìa materiêl quacê da dirét 'd autōr sèinsa autorişâsiòun! </strong>",
 'copyrightwarning2' => "Per piaşèir tîn cûnt che tót al colaborasiòun a {{SITENAME}} a pōlen èser mudifichê, arversê o scanşlê da êtra gînta cla dà 'na mân. S' an 't vō mìa che i tō tèst a pôsen èser cambiê alōra an publichêri mìa ché.<br />In pió, se 't  i póblich ché, a 't dichiâr, sòta la tó responsabilitê, che còl ch' è stê scrét a 't l'ê scrét té personalmèint opór l'é ste cupiê da documèint sèinsa ch' al sìa quacê da nisûn dirét 'd autōr (per i particulêr guêrda $1). <strong> Ché insém an pubblichêr mìa materiêl quacê da dirét 'd autōr sèinsa autorişâsiòun! </strong>",
 'longpageerror' => "<strong> Erōr: al tèst spidî l'é lòngh {{PLURAL:$1|1|$1}} kilobyte, ch'l'é pió grôs ed l'amzûra mâsima permésa ({{PLURAL:$2|1|$2}} kilobyte). </strong> Al tèst al pôl mìa èser salvê.",
+'readonlywarning' => "<strong>Atensiòun: al databêş l'é stê bluchê per justadûri e dòunca l'é impusébil salvê al mudéfichi in cól mumèint ché.</strong> P'r an pêrdi mìa, l'é pusébil cupiêri còl ch' é stê més dèinter fîn a dès int la caşèla di cambiamèint, incolêrel in un prugrâma tèst e salvêrel per spetêr al şblôch dal databêş. 
+
+L'aministradōr ch' l'à bluchê al databêş l'à dê cla spiegasiòun ché: $1",
+'protectedpagewarning' => "<strong> Atensiòun: cla pàgina ché l'é stêda bluchêda in môd che sōl j utèint cun i privilèg 'd aministradōr a pôsen cambiêrla.</strong> 
+Per infurmasiòun ché 'd sègvit a vîn scrét l'ûltem elemèint dal regéster:",
+'semiprotectedpagewarning' => "<strong>Nôta:</strong> cla pàgina ché l'é stêda bluchê in môd che sōl j utèint registrê a pôsen cambiêrla. 
+Per infurmasiòun ché 'd sègvit è scrét l'ûltem elemèint dal regéster.",
+'cascadeprotectedwarning' => "<strong> Atensiòun: </strong>cla pàgina ché l'é stêda bluchêda in môd che sōl j utèint cun i privilèg 'd aministradō a pôsen cambiêrla. Còst a sucēd perchè la pàgina l'é dèinter in cl'elèinch sòta protesiòun ché 'd sègvit {{PLURAL:$1|pàgina|pàgini}}",
+'titleprotectedwarning' => "<strong> Atensiòun: cla pàgina ché l'é stêda bluchêda in môd che, per fêrla, sién necesâri [[Special:ListGroupRights|dirét specêl]] </strong> 
+Per infurmasiòun ché 'd sègvit è scrét l'ûltem elemèint dal regéster.",
 'templatesused' => '{{PLURAL:$1|Mudèl druvê|Mudē druvê}} in cla pàgina ché:',
+'templatesusedpreview' => "{{PLURAL:$1|Mudèl druvê|Mudē druvê}} in cla pàgina 'd contròl ché:",
+'templatesusedsection' => '{{PLURAL:$1|Mudèl druvê|Mudē druvê}} in cla sesiòun ché:',
 'template-protected' => '(prutèt)',
 'template-semiprotected' => '(mèz-prutèt)',
 'hiddencategories' => "Cla pàgina ché l' é 'd {{PLURAL:$1|'na categoréia lughêda|$1 categoréi lughêdi}}:",
+'nocreatetext' => "La pusibilitê ed fêr dal pàgini nōvi insém a {{SITENAME}} l'é stêda limitêda a sōl j utèint registrê. L'é pusébil turnê indrē e mudifichêr 'na pògina ch la gh'é bèle,opór [[Special:UserLogin|andêr dèinter o registrêres]].",
+'nocreate-loggedin' => "An 's gh'à mìa i permès necesâri per fêr dal pàgini nōvi.",
+'sectioneditnotsupported-title' => 'Mudéfica dal sesiòun mìa sustgnûda.',
+'sectioneditnotsupported-text' => 'Mudéfica dal sesiòun mìa sustgnûda in cla pàgina ché.',
+'permissionserrors' => 'I permès în mìa asê',
+'permissionserrorstext' => "An 's gh'à mìa i permès necesâri per fêr còl ch'es pèinsa ed fêr per{{PLURAL:$1|cól mutîv ché|chi mutîv ché}}:",
 'permissionserrorstext-withaction' => "An 's gh'à mìa i permès necesâri per $2, per{{PLURAL:$1|cól mutîv ché|chi mutîv ché}}:",
 'recreate-moveddeleted-warn' => "'''Atensiòun: a s'é drē serchêr ed fêr 'na pàgina bèle scanşlêda tèimp fa'''. 
 
@@ -744,9 +766,30 @@ Asicurêres che sìa dabòun necesâri cuntinvêr a mudifichêr cla pàgina ché
 Per cumditê còst l'é l'èlèinch dal scanşladûri e di spustamèint relatîv a la pàgina.",
 'moveddeleted-notice' => "Cla pàgina ché l'é stêda scanşlêda. Per infurmasiòun  còst l'é l'èlèinch relatîv dal scanşladûri e di spustemèint fât.",
 'log-fulllog' => 'Guêrda la stòria dal registrasiòun',
+'edit-hook-aborted' => "La mudéfica l'é stêda scanşlêda da l' hook.
+An n'é mìa stê dê nisóna spiegasiòun.",
+'edit-gone-missing' => "Impusébil arnuvêr la pàgina. 
+A sèmbra ch'la sìa stêda scanşlêda.",
 'edit-conflict' => "Cuntrâst 'd edisiòun",
+'edit-no-change' => "La mudéfica an n'é mìa stêda cunsidrêda perchè an n'é mìa stê fât di cambiamèint al tèst.",
+'postedit-confirmation' => "La mudéfica l'é stêda salvêda.",
+'edit-already-exists' => "L'é impusébil fêr 'na pàgina nōva.
+La ghé bèle.",
+'defaultmessagetext' => 'Tèst pre-stabilî',
+'content-failed-to-parse' => "L'é impusébil cunsidrêr $2 p'r al mudèl $1:$3",
+'invalid-content-data' => 'Al j infurmasiòn ché dèinter în mìa vâlidi.',
+'content-not-allowed-here' => 'Còl che gh\'é dèinter a"$1" an n\'é mìa permés int al pàgini [[$2]]',
+'editwarning-warning' => "Bandunêr cla pàgina ché a 's pré pêrder tóti 'l mudéfichi fâti. Se t'é fât l'ingrès, ét pō bluchêr cl' avîş ché int la sesiòun \"{{int:prefs-editing}}\" dal tō preferèinsi.",
+'editpage-notsupportedcontentformat-title' => "Cla fōrma ché an n'é mìa sostgnûda.",
+'editpage-notsupportedcontentformat-text' => 'La fōrma dal scrét in $1 la rispèta mìa al mudèl scrét in $2.',
+
+# Content models
+'content-model-wikitext' => 'wikitèst',
+'content-model-text' => 'tèst normêl',
 
 # Parser/template warnings
+'expensive-parserfunction-warning' => "'''Atensiòun:''' cla pàgina ché la gh'à trôpi ciamêdi ala funsiòun parse. A n' in duvré avèir mēno 'd $2, adèsa a {{PLURAL:$1|'gh n'é $1}}.",
+'expensive-parserfunction-category' => 'Pàgini cun trôpi ciamêdi a la funsiòun parser.',
 'post-expand-template-inclusion-warning' => "'''Atensiòun:''' la grandèsa di mudē més dèinter l'é trôp grôsa. Soquânt mudē gnirâ mìa més dèinter.",
 'post-expand-template-inclusion-category' => "Pàgini in dó la grandèsa di mudē més dèinter la và d'ed sōver dal lémit permés.",
 'post-expand-template-argument-warning' => "'''Atensiòun:''' cla pàgina ché la gh'à ûn o pió argumèint ed mudē trôp grôs per èser şlarghê. Chi argomèint ché a gnirân saltê.",
index 56b12d7..f4c4d67 100644 (file)
@@ -1075,7 +1075,7 @@ $2
 ή να [{{fullurl:{{FULLPAGENAME}}|action=edit}} επεξεργαστείτε τη σελίδα αυτή]</span>.',
 'noarticletext-nopermission' => 'Δεν υπάρχει κείμενο σε αυτή τη σελίδα αυτή τη στιγμή.
 Μπορείτε να [[Special:Search/{{PAGENAME}}|αναζητήσετε αυτόν τον τίτλο σελίδας]] σε άλλες σελίδες, ή <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} να ψάξετε στις σχετικές καταγραφές]</span>, αλλά δεν έχετε την άδεια να δημιουργήσετε αυτή τη σελίδα.',
-'missing-revision' => 'Δεν υπάρχει αναθεώρηση με αριθμό $1 για τη σελίδα με όνομα «{{PAGENAME}}».
+'missing-revision' => 'Δεν υπάρχει αναθεώρηση με αριθμό $1 για τη σελίδα με όνομα «{{FULLPAGENAME}}».
 
 Αυτό συνήθως προκαλείται από παλιό σύνδεσμο ιστορικού προς σελίδα που έχει διαγραφεί.
 Λεπτομέρειες θα βρείτε στο [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ημερολόγιο καταγραφής διαγραφών].',
@@ -1304,8 +1304,7 @@ Mπορείτε να δείτε αυτή την διαφορά. Λεπτομέρ
 'revdelete-no-file' => 'Το αρχείο που καθορίσατε δεν υπάρχει.',
 'revdelete-show-file-confirm' => 'Είστε σίγουροι ότι θέλετε να δείτε μία διεγραμμένη αναθεώρηση του αρχείου "<nowiki>$1</nowiki>" από τις $2 στις $3;',
 'revdelete-show-file-submit' => 'Ναι',
-'revdelete-selected' => "'''{{PLURAL:$2|Επιλεγμένη έκδοση|Επιλεγμένες εκδόσεις}} της [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Επιλεγμένο γεγονός αρχείου καταγραφής|Επιλεγμένα γεγονότα αρχείου καταγραφής}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Επιλεγμένο γεγονός αρχείου καταγραφής|Επιλεγμένα γεγονότα αρχείου καταγραφής}}:',
 'revdelete-confirm' => 'Παρακαλούμε επιβεβαιώστε ότι σκοπεύετε να το κάνετε αυτό, ότι αντιλαμβάνεσθε τις συνέπειες, και ότι το κάνετε σύμφωνα με την [[{{MediaWiki:Policy-url}}|πολιτική]].',
 'revdelete-suppress-text' => 'Η καταστολή μπορεί να χρησιμοποιηθεί <strong> μόνο </strong> για τις ακόλουθες περιπτώσεις:
 * Ενδεχόμενη συκοφαντική δυσφήμιση
index 192ef8d..dbf520d 100644 (file)
@@ -1464,7 +1464,7 @@ or [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page]</span>.',
 'noarticletext-nopermission'               => 'There is currently no text in this page.
 You can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages, or <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>, but you do not have permission to create this page.',
 'noarticletextanon'                        => '{{int:noarticletext}}', # do not translate or duplicate this message to other languages
-'missing-revision'                         => 'The revision #$1 of the page named "{{PAGENAME}}" does not exist.
+'missing-revision'                         => 'The revision #$1 of the page named "{{FULLPAGENAME}}" does not exist.
 
 This is usually caused by following an outdated history link to a page that has been deleted.
 Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
@@ -1714,8 +1714,9 @@ function, the specified revision does not exist, or you are attempting to hide t
 'revdelete-no-file'           => 'The file specified does not exist.',
 'revdelete-show-file-confirm' => 'Are you sure you want to view a deleted revision of the file "<nowiki>$1</nowiki>" from $2 at $3?',
 'revdelete-show-file-submit'  => 'Yes',
-'revdelete-selected'          => '<strong>{{PLURAL:$2|Selected revision|Selected revisions}} of [[:$1]]:</strong>',
-'logdelete-selected'          => '<strong>{{PLURAL:$1|Selected log event|Selected log events}}:</strong>',
+'revdelete-selected-text'     => '{{PLURAL:$1|Selected revision|Selected revisions}} of [[:$2]]:',
+'revdelete-selected-file'     => '{{PLURAL:$1|Selected file version|Selected file versions}} of [[:$2]]:',
+'logdelete-selected'          => '{{PLURAL:$1|Selected log event|Selected log events}}:',
 'revdelete-text-text'         => 'Deleted revisions will still appear in the page history, but parts of their content will be inaccessible to the public.',
 'revdelete-text-file'         => 'Deleted file versions will still appear in the file history, but parts of their content will be inaccessible to the public.',
 'logdelete-text'              => 'Deleted log events will still appear in the logs, but parts of their content will be inaccessible to the public.',
index 73f7a5b..8d34091 100644 (file)
@@ -1048,7 +1048,7 @@ aŭ [{{fullurl:{{FULLPAGENAME}}|action=edit}} redakti ĉi tiun paĝon]</span>.',
 'noarticletext-nopermission' => 'Estas neniom da teksto en ĉi tiu paĝo.
 Vi povas [[Special:Search/{{PAGENAME}}|serĉi ĉi tiun paĝan titolon]] en aliaj paĝoj,
 aŭ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} serĉi la rilatajn protokolojn]</span>, sed vi ne rajtas krei ĉi tiun paĝon.',
-'missing-revision' => 'La revizio n-ro $1 de la paĝo nomata "{{PAGENAME}}" ne ekzistas.
+'missing-revision' => 'La revizio n-ro $1 de la paĝo nomata "{{FULLPAGENAME}}" ne ekzistas.
 
 Tio kutime estas kaŭzata per sekvado de malaktuala historio-ligilo al paĝo forigita.
 Detaloj troveblos en la [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de forigoj].',
@@ -1275,8 +1275,7 @@ funkcion, la specifita versio ne ekzistas, aŭ vi estas provanta kaŝi la nunan
 'revdelete-no-file' => 'La specifita dosiero ne ekzistas.',
 'revdelete-show-file-confirm' => 'Ĉu vi certas ke vi volas vidi forigitan revizion de la dosiero "<nowiki>$1</nowiki>" de $2, $3?',
 'revdelete-show-file-submit' => 'Jes',
-'revdelete-selected' => "'''{{PLURAL:$2|Selektata versio|Selektataj versioj}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Selektata protokola evento|Selektataj protokolaj eventoj}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Selektata protokola evento|Selektataj protokolaj eventoj}}:',
 'revdelete-confirm' => 'Bonvolu konfirmi ke vi intencias fari ĉi tion, ke vi komprenas la konsekvencojn kaj ke vi faras ĉi tion laŭ [[{{MediaWiki:Policy-url}}|la regularo]].',
 'revdelete-suppress-text' => "Subpremo '''nur''' estu uzata por la jenaj kazoj:
 * Ebla kalumnia informo
index 8d9e606..ee8e2df 100644 (file)
@@ -1119,7 +1119,7 @@ Puedes [[Special:Search/{{PAGENAME}}|buscar el título de esta página]] en otra
 o [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar esta página]</span>.',
 'noarticletext-nopermission' => 'Actualmente no hay texto en esta página.
 Puedes [[Special:Search/{{PAGENAME}}|buscar este título de página]] en otras páginas, o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los registros relacionados]</span>, pero no tienes permiso para crear esta página.',
-'missing-revision' => 'La revisión n.º $1 de la página llamada «{{PAGENAME}}» no existe.
+'missing-revision' => 'La revisión n.º $1 de la página llamada «{{FULLPAGENAME}}» no existe.
 
 Normalmente esto ocurre cuando se sigue un enlace de historial obsoleto que apunta a una página ya borrada.
 Puedes encontrar detalles en el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].',
@@ -1350,8 +1350,7 @@ Aún tiene la posibilidad de verla; puede ampliar los detalles en el [{{fullurl:
 'revdelete-no-file' => 'El archivo especificado no existe.',
 'revdelete-show-file-confirm' => '¿Quieres ver la revisión borrada del archivo «<nowiki>$1</nowiki>» del $2 a las $3?',
 'revdelete-show-file-submit' => 'Sí',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisión seleccionada|Revisiones seleccionadas}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Seleccionado un evento|Seleccionados eventos}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Seleccionado un evento|Seleccionados eventos}}:',
 'revdelete-text-text' => 'Las revisiones eliminadas aún aparecerán en el historial de la página, pero parte de su contenido será inaccesible para el público.',
 'revdelete-text-file' => 'Las versiones de los archivos eliminados aún aparecerán en el historial del archivo, pero partes de su contenido serán inaccesibles para el público.',
 'logdelete-text' => 'Las revisiones eliminadas aún aparecerán en el historial de la página, pero parte de su contenido será inaccesible para el público.',
index 18ca978..3d73619 100644 (file)
@@ -1028,7 +1028,7 @@ Võid [[Special:Search/{{PAGENAME}}|otsida pealkirjaks olevat fraasi]] teistelt
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} uurida asjassepuutuvaid logisid] või [{{fullurl:{{FULLPAGENAME}}|action=edit}} puuduva lehekülje ise luua]</span>.',
 'noarticletext-nopermission' => 'Sellel leheküljel pole praegu teksti.
 Saad [[Special:Search/{{PAGENAME}}|otsida selle lehekülje pealkirja]] teistelt lehekülgedelt või <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} otsida seonduvatest logidest]</span>, aga sul pole õigust seda lehekülge alustada.',
-'missing-revision' => 'Lehekülje "{{PAGENAME}}" redaktsiooni $1 pole.
+'missing-revision' => 'Lehekülje "{{FULLPAGENAME}}" redaktsiooni $1 pole.
 
 Harilikult tähendab see seda, et sind siia juhatanud link on vananenud ja siin asunud lehekülg on kustutatud.
 Üksikasjad leiad [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kustutamislogist].',
@@ -1254,8 +1254,9 @@ Saad seda muudatust vaadata. [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAG
 'revdelete-no-file' => 'Faili ei ole.',
 'revdelete-show-file-confirm' => 'Kas oled kindel, et soovid häha faili "<nowiki>$1</nowiki>" kustutatud redaktsiooni, mis tehti $2 kell $3?',
 'revdelete-show-file-submit' => 'Jah',
-'revdelete-selected' => "'''Valitud {{PLURAL:$2|redaktsioon|redaktsioonid}} leheküljest [[:$1]]:'''",
-'logdelete-selected' => "'''Valitud {{PLURAL:$1|logisissekanne|logisissekanded}}:'''",
+'revdelete-selected-text' => 'Lehekülje [[:$2]] teksti valitud {{PLURAL:$1|redaktsioon|redaktsioonid}}:',
+'revdelete-selected-file' => 'Faili [[:$2]] valitud {{PLURAL:$1|versioon|versioonid}}:',
+'logdelete-selected' => 'Valitud {{PLURAL:$1|logisissekanne|logisissekanded}}:',
 'revdelete-text-text' => 'Kustutatud redaktsioonid jäävad lehekülje ajalukku alles, aga osa nende sisust pole kõigile juurdepääsetav.',
 'revdelete-text-file' => 'Kustutatud failiversioonid jäävad faili ajalukku alles, aga osa nende sisust pole kõigile juurdepääsetav.',
 'logdelete-text' => 'Kustutatud logisündmused jäävad logisse alles, aga osa nende sisust pole kõigile juurdepääsetav.',
@@ -2101,6 +2102,11 @@ Sisesta kujul tüüp/alamtüüp, näiteks <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Ümbersuunamised',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Duplikaatfailide loend',
+'listduplicatedfiles-summary' => 'Siin on loetletud failid, mille viimane versioon on mõne teise faili viimase versiooni duplikaat. Arvesse võetakse ainult kohalikke faile.',
+'listduplicatedfiles-entry' => 'Failil [[:File:$1|$1]] on [[$3|{{PLURAL:$2|üks duplikaat|$2 duplikaati}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Kasutamata mallid',
 'unusedtemplatestext' => 'See lehekülg loetleb kõik leheküljed nimeruumis {{ns:template}}, mida teistel lehekülgedel ei kasutata. Enne kustutamist palun kontrollige, kas siia pole muid linke.',
@@ -2741,6 +2747,7 @@ Täida ka põhjuse väli, näiteks viidates lehekülgedele, mis rikuti.',
 Kehtivaid blokeeringuid vaata [[Special:BlockList|blokeerimisnimekirjast]].',
 'ipb-blockingself' => 'Sa blokeerid iseenda! Kas tahad tõesti seda teha?',
 'ipb-confirmhideuser' => 'Avaldasid soovi kasutaja blokeerida ja peita. Kasutaja nimi peidetakse kõigist loenditest ja logisissekannetest. Kas oled kindel, et soovid seda teha?',
+'ipb-confirmaction' => 'Kui oled tõesti kindel, et tahad seda teha, siis vali palun allpool "{{int:ipb-confirm}}".',
 'ipb-edit-dropdown' => 'Muuda blokeeringu põhjuseid',
 'ipb-unblock-addr' => 'Tühista kasutaja $1 blokeering',
 'ipb-unblock' => 'Kasutaja või IP-aadressi vabastamine blokeerimisest',
index 86e99ee..b406422 100644 (file)
@@ -1038,8 +1038,7 @@ Administratzailea zarenez, diff hau ikus dezakezu. Xehetasunak ikusgai daude [{{
 'revdelete-no-file' => 'Zehazturiko fitxategia ez da existitzen.',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" fitxategiaren bertsio ezabatua (eguna: $2; ordua: $3) ikusi nahi duzu?',
 'revdelete-show-file-submit' => 'Bai',
-'revdelete-selected' => "'''{{PLURAL:$2|[[:$1]](r)en hautatutako berrikuspena:|[[:$1]](r)en hautatutako berrikuspenak}}'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Aukeratutako log gertakaria|Aukeratutako log gertakariak}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Aukeratutako log gertakaria|Aukeratutako log gertakariak}}:',
 'revdelete-confirm' => 'Baiezta ezazu hori dela zure asmoa, ulertzen dituzula ondorioak, eta [[{{MediaWiki:Policy-url}}|irizpideak]] errespetatuz egiten ari zarela hau.',
 'revdelete-suppress-text' => "Ezabaketa '''bakarrik''' arrazoi hauek direla eta erabili beharko litzateke:
 * Informazio pertsonal desegokia
index 05663d4..6b1cd21 100644 (file)
@@ -662,8 +662,7 @@ puei bel detallis nel [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}
 'revdelete-nooldid-title' => 'Nu ai una revisión destinu',
 'revdelete-nooldid-text' => 'Nu as prehisau denguna revisión destinu ondi realizal esta hunción.',
 'revdelete-show-file-submit' => 'Sí',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisión aseñalá e|Revisionis aseñalás de}} '''[[:$1]]''':'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Eventu el rustrihu aseñalau|Eventus del rustrihu aseñalaus}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Eventu el rustrihu aseñalau|Eventus del rustrihu aseñalaus}}:',
 'revdelete-legend' => 'Establecel restricionis de visibiliá',
 'revdelete-hide-text' => 'Açonchal el testu la revisión',
 'revdelete-hide-image' => 'Açonchal el continiu el archivu',
index 887dc3a..d44a2aa 100644 (file)
@@ -1189,7 +1189,7 @@ $2
 'noarticletext-nopermission' => 'این صفحه هم‌اکنون متنی ندارد.
 شما می‌توانید در دیگر صفحه‌ها [[Special:Search/{{PAGENAME}}|این عنوان را جستجو کنید]]،
 یا <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} سیاهه‌های مرتبط را بگردید]</span> ولی شما اجازه ایجاد این صفحه را ندارید.',
-'missing-revision' => 'ویرایش #$1 از صفحهٔ «{{PAGENAME}}» موجود نیست.
+'missing-revision' => 'ویرایش #$1 از صفحهٔ «{{FULLPAGENAME}}» موجود نیست.
 
 معمولاً در اثر پیوند به تاریخچهٔ به‌روز نشدهٔ صفحهٔ حذف شده است.
 می‌توانید جزئیات بیشتر را در [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سیاههٔ حذف] بیابید.',
@@ -1198,11 +1198,11 @@ $2
 'userpage-userdoesnotexist-view' => 'حساب کاربری «$1» ثبت نشده‌است.',
 'blocked-notice-logextract' => 'دسترسی این کاربر در حال حاضر بسته است.
 آخرین مورد سیاهه قطع دسترسی در زیر آمده‌است:',
-'clearyourcache' => "'''نکته:''' پس از ذخیره‌کردن ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
-*'''فایرفاکس / سافاری:'''  کلید ''Shift'' را نگه دارید و روی دکمهٔ ''Reload'' کلیک کنید، یا کلید‌های ''Ctrl-F5'' یا ''Ctrl-R'' را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ''⌘-R'')
-*'''گوگل کروم:'''کلیدهای ''Ctrl+Shift+R'' را با هم فشار دهید. (در رایانه‌های اپل مکینتاش کلید‌های ''⌘-Shift-R'')
-*'''اینترنت اکسپلورر:''' کلید ''Ctrl'' را نگه‌دارید و روی دکمهٔ ''Refresh'' کلیک کنید، یا کلید‌های ''Ctrl-F5'' را با هم فشار دهید
-*'''اپرا:''' حافظهٔ نهانی مرورگر را از طریق منوی ''Tools &rarr; Preferences'' پاک کنید",
+'clearyourcache' => '<strong>نکته:</strong> پس از ذخیره‌کردن ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
+*<strong>فایرفاکس / سافاری:</strong> کلید <em>Shift</em> را نگه دارید و روی دکمهٔ <em>Reload</em> کلیک کنید، یا کلید‌های <em>Ctrl-F5</em> یا <em>Ctrl-R</em> را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های <em>⌘-R</em>)
+*<strong>گوگل کروم:</strong> کلیدهای <em>Ctrl+Shift+R</em> را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های <em>⌘-Shift-R</em>)
+*<strong>اینترنت اکسپلورر:</strong> کلید <em>Ctrl</em> را نگه‌دارید و روی دکمهٔ <em>Refresh</em> کلیک کنید، یا کلید‌های <em>Ctrl-F5</em> را با هم فشار دهید
+*<strong>اپرا:</strong> حافظهٔ نهانی مرورگر را از طریق منوی <em>Tools &rarr; Preferences</em> پاک کنید',
 'usercssyoucanpreview' => "'''نکته:''' پیش از ذخیره‌کردن پرونده سی‌اس‌اس خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
 'userjsyoucanpreview' => "'''نکته:''' پیش از ذخیره‌کردن پروندهٔ جاوااسکریپت خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
 'usercsspreview' => "'''فراموش مکنید که شما فقط دارید پیش‌نمایش سی‌اس‌اس کاربری‌تان را می‌بینید.'''
@@ -1427,8 +1427,7 @@ $2
 'revdelete-no-file' => 'پروندهٔ مشخص شده وجود ندارد.',
 'revdelete-show-file-confirm' => 'آیا مطمئن هستید که می‌خواهید یک نسخهٔ حذف شده از پروندهٔ «<nowiki>$1</nowiki>» مورخ $2 ساعت $3 را ببینید؟',
 'revdelete-show-file-submit' => 'بله',
-'revdelete-selected' => "'''{{PLURAL:$2|نسخهٔ|نسخه‌های}} انتخاب شده از [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|مورد|موارد}} انتخاب شده از سیاهه:'''",
+'logdelete-selected' => '{{PLURAL:$1|مورد|موارد}} انتخاب شده از سیاهه:',
 'revdelete-confirm' => 'لطفاً تأیید کنید که می‌خواهید این کار را انجام دهید، عواقب آن را درک می‌کنید و این کار را طبق [[{{MediaWiki:Policy-url}}|سیاست‌ها]] انجام می‌دهید.',
 'revdelete-suppress-text' => "فرونشانی باید '''تنها''' برای موارد زیر استفاده شود:
 * اطلاعات به طور بالقوه افتراآمیز
@@ -4306,7 +4305,7 @@ $5
 # Database error messages
 'dberr-header' => 'این ویکی یک ایراد دارد',
 'dberr-problems' => 'شرمنده! این تارنما از مشکلات فنی رنج می‌برد.',
-'dberr-again' => 'چند دقیقه صبر کند و دوباره صفحه را بارگیری کنید.',
+'dberr-again' => 'چند دقیقه صبر کنید و دوباره صفحه را بارگیری کنید.',
 'dberr-info' => '(امکان برقراری ارتباط با کارساز پایگاه داده وجود ندارد: $1)',
 'dberr-info-hidden' => '(امکان تماس با پایگاه‌داده‌ها کارساز امکان‌پذیر نیست)',
 'dberr-usegoogle' => 'شما در این مدت می‌توانید با استفاده از گوگل جستجو کنید.',
index d909ee6..7817029 100644 (file)
@@ -1043,7 +1043,7 @@ Voit [[Special:Search/{{PAGENAME}}|etsiä sivun nimellä]] muilta sivuilta,
 tai [{{fullurl:{{FULLPAGENAME}}|action=edit}} muokata tätä sivua]</span>.',
 'noarticletext-nopermission' => 'Tällä hetkellä tällä sivulla ei ole tekstiä.
 Voit [[Special:Search/{{PAGENAME}}|etsiä sivun nimellä]] muilta sivuilta tai <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hakea aiheeseen liittyviä lokeja]</span>, mutta sinulla ei ole oikeutta luoda tätä sivua.',
-'missing-revision' => 'Sivusta "{{PAGENAME}}" ei ole olemassa versiota $1.
+'missing-revision' => 'Sivusta "{{FULLPAGENAME}}" ei ole olemassa versiota $1.
 
 Yleensä tämä johtuu vanhentuneesta historialinkistä sivulle, joka on poistettu.
 Tarkempia tietoja löytyy [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} poistolokista].',
@@ -1261,8 +1261,9 @@ Voit silti nähdä tämän muutoksen. Lisätietoja löytyy [{{fullurl:{{#Special
 'revdelete-no-file' => 'Määritettyä tiedostoa ei ole olemassa.',
 'revdelete-show-file-confirm' => 'Haluatko varmasti nähdä poistetun version tiedostosta <nowiki>$1</nowiki>, joka on tallennettu $2 kello $3?',
 'revdelete-show-file-submit' => 'Kyllä',
-'revdelete-selected' => "'''{{PLURAL:$2|Valittu versio|Valitut versiot}} sivusta [[:$1]]'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Valittu lokimerkintä|Valitut lokimerkinnät}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Valittu versio|Valitut versiot}} kohteesta [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Valittu tiedoston versio|Valitut tiedoston versiot}} kohteesta [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Valittu lokimerkintä|Valitut lokimerkinnät}}:',
 'revdelete-text-text' => 'Poistetut versiot näkyvät edelleen sivun historiassa, mutta osa niiden sisällöstä ei enää ole saatavilla julkisesti.',
 'revdelete-text-file' => 'Poistetut tiedostoversiot näkyvät yhä sivun historiassa, mutta osa niiden sisällöstä ei ole saatavilla julkisesti.',
 'logdelete-text' => 'Poistetut lokimerkinnät näkyvät edelleen lokeissa, mutta osa niiden sisällöstä ei enää ole saatavilla julkisesti.',
@@ -1351,9 +1352,9 @@ Uuden ja vanhan sivun muutoksien pitää muodostaa jatkumo – ne eivät saa men
 'mergelogpagetext' => 'Alla on loki viimeisimmistä muutoshistorioiden yhdistämisistä.',
 
 # Diffs
-'history-title' => 'Sivun "$1" muutoshistoria',
-'difference-title' => 'Ero sivun "$1" versioiden välillä',
-'difference-title-multipage' => 'Erot sivujen "$1" ja "$2" välillä',
+'history-title' => 'Sivun ”$1” muutoshistoria',
+'difference-title' => 'Ero sivun ”$1” versioiden välillä',
+'difference-title-multipage' => 'Erot sivujen ”$1” ja ”$2” välillä',
 'difference-multipage' => '(Sivujen välinen eroavaisuus)',
 'lineno' => 'Rivi $1:',
 'compareselectedversions' => 'Vertaile valittuja versioita',
@@ -2548,7 +2549,7 @@ Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|k
 'modifiedarticleprotection' => 'muutti sivun [[$1]] suojaustasoa',
 'unprotectedarticle' => 'poisti suojauksen sivulta [[$1]]',
 'movedarticleprotection' => 'siirsi suojausasetukset sivulta [[$2]] sivulle [[$1]]',
-'protect-title' => 'Sivun $1 suojaus',
+'protect-title' => 'Muuta suojausta sivulla ”$1”',
 'protect-title-notallowed' => 'Sivun $1 suojaustaso',
 'prot_1movedto2' => 'siirsi sivun [[$1]] uudelle nimelle [[$2]]',
 'protect-badnamespace-title' => 'Nimiavaruus ei suojattavissa',
index eaa8139..05a3669 100644 (file)
@@ -836,7 +836,7 @@ ella [{{fullurl:{{FULLPAGENAME}}|action=edit}} rætta hesa síðu]</span>.',
 'noarticletext-nopermission' => 'Tað er í løtuni ongin tekstur á hesi síðu.
 Tú kanst [[Special:Search/{{PAGENAME}}|leita eftir hesum síðuheiti]] á øðrum síðum, 
 ella <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} leita eftir viðkomandi loggum]</span>, men tú hevur ikki loyvi til at stovna hesa síðu.',
-'missing-revision' => 'Endurskoðan #$1 av síðuni við heitinum "{{PAGENAME}}" er ikki til.
+'missing-revision' => 'Endurskoðan #$1 av síðuni við heitinum "{{FULLPAGENAME}}" er ikki til.
 
 Hetta skyldast vanliga tað, at tú fylgir einari gamlari søguslóð til eina síðu, sum er blivin slettað. 
 Nærri frágreiðing kanst tú finna í [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} strikingar logginum].',
@@ -1054,8 +1054,7 @@ Tú kanst síggja munin; smálutir eru at finna í [{{fullurl:{{#Special:Log}}/s
 'revdelete-no-file' => 'Nevnda fíla er ikki til.',
 'revdelete-show-file-confirm' => 'Ert tú vís/ur í, at tú ynskir at síggja eina strikaða endurskoðan av fíluni "<nowiki>$1</nowiki>" frá $2 kl. $3?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Valda versjón|Valdar versjónir}} hjá [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Útvald logghending|Útvaldar logghendingar}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Útvald logghending|Útvaldar logghendingar}}:',
 'revdelete-confirm' => 'Vinarliga vátta, at tú ætlar at gera hetta, at tú skilir avleiðingarnar, og at tú ger hetta í samsvari við [[{{MediaWiki:Policy-url}}|mannagongdirnar]].',
 'revdelete-legend' => 'Set avmarkinga fyri sjónligheit',
 'revdelete-hide-text' => 'Versjónstekstur',
index 4ba0ae6..8c5ce8e 100644 (file)
@@ -1148,7 +1148,7 @@ ou [{{fullurl:{{FULLPAGENAME}}|action=edit}} créer cette page]</span>.',
 'noarticletext-nopermission' => 'Il n\'y a pour l\'instant aucun texte sur cette page.
 Vous pouvez [[Special:Search/{{PAGENAME}}|faire une recherche sur ce titre]] dans les autres pages,
 ou <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechercher dans les journaux associés]</span>.',
-'missing-revision' => "La révision n° $1 de la page intitulée « {{PAGENAME}} » n'existe pas.
+'missing-revision' => "La révision n° $1 de la page intitulée « {{FULLPAGENAME}} » n'existe pas.
 
 Cela survient en général en suivant un lien historique obsolète vers une page qui a été supprimée.
 Vous pouvez trouver plus de détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
@@ -1374,8 +1374,9 @@ Vous pouvez voir ce diff ; des détails sont disponibles dans le [{{fullurl:{{#S
 'revdelete-no-file' => "Le fichier spécifié n'existe pas.",
 'revdelete-show-file-confirm' => 'Êtes-vous sûr de vouloir voir la révision supprimée du fichier « <nowiki>$1</nowiki> » datant du $2 à $3 ?',
 'revdelete-show-file-submit' => 'Oui',
-'revdelete-selected' => "'''{{PLURAL:$2|Version sélectionnée|Versions sélectionnées}} de '''[[:$1]]''' :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Événement d'historique sélectionné|Événements d'historique sélectionnés}} :'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Révision sélectionnée|Révisions sélectionnées}} de [[:$2]] :',
+'revdelete-selected-file' => '{{PLURAL:$1|Version de fichier sélectionnée|Versions de fichier sélectionnées}} de [[:$2]] :',
+'logdelete-selected' => "{{PLURAL:$1|Événement d'historique sélectionné|Événements d'historique sélectionnés}} :",
 'revdelete-text-text' => "Les révisions supprimées continueront à apparaître dans l'historique de la page, mais une partie de leur contenu sera inaccessible au public.",
 'revdelete-text-file' => "Les versions de fichier supprimées continueront à apparaître dans l'historique des fichiers, mais une partie de leur contenu sera indisponible au public.",
 'logdelete-text' => 'Les évènements du journal supprimés continueront à apparaître dans les journaux, mais une partie de leur contenu sera indisponible au public.',
@@ -2247,7 +2248,7 @@ Entrée : ''typedecontenu''/''sous-type'', par exemple <code>image/jpeg</code>."
 # List duplicated files special page
 'listduplicatedfiles' => 'Liste de fichiers en double',
 'listduplicatedfiles-summary' => "C'est une liste de fichiers où la version la plus récente du fichier est une copie de la version la plus récente d'un autre fichier. Seuls les fichiers locaux sont examinés.",
-'listduplicatedfiles-entry' => '[[:Fichier:$1|$1]] a [[$3|{{PLURAL:$2|un doublon|$2 doublons}}]].',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] a [[$3|{{PLURAL:$2|un doublon|$2 doublons}}]].',
 
 # Unused templates
 'unusedtemplates' => 'Modèles inutilisés',
@@ -2832,7 +2833,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => "Cette adresse IP est actuellement bloquée.
 La dernière entrée du journal des blocages est indiquée ci-dessous à titre d'information :",
 'sp-contributions-search' => 'Rechercher les contributions',
-'sp-contributions-suppresslog' => 'contributions des utilisateurs supprimées',
+'sp-contributions-suppresslog' => 'contributions masquées',
 'sp-contributions-username' => "Adresse IP ou nom d'utilisateur :",
 'sp-contributions-toponly' => 'Ne montrer que les contributions qui sont les dernières des articles',
 'sp-contributions-newonly' => 'Afficher uniquement les modifications qui sont des créations de page',
index 7a8deca..53e4262 100644 (file)
@@ -1021,7 +1021,7 @@ Vos pouede [[Special:Search/{{PAGENAME}}|fâre na rechèrche sur cél titro]] de
 ou ben [{{fullurl:{{FULLPAGENAME}}|action=edit}} fâre cela pâge]</span>.',
 'noarticletext-nopermission' => 'Ora y at gins de tèxto dedens cela pâge.
 Vos pouede [[Special:Search/{{PAGENAME}}|fâre na rechèrche sur cél titro]] dedens les ôtres pâges ou ben <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechèrchiér dedens los jornals liyês]</span>, mas vos éd pas la pèrmission de fâre cela pâge.',
-'missing-revision' => 'La vèrsion numerô $1 de la pâge apelâye « {{PAGENAME}} » ègziste pas.
+'missing-revision' => 'La vèrsion numerô $1 de la pâge apelâye « {{FULLPAGENAME}} » ègziste pas.
 
 En g·ènèral cen arreve en siuvent un lim d’un historico dèpassâ de vers na pâge qu’est étâye suprimâye.
 Vos pouede trovar més de dètalys sur lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de les suprèssions].',
@@ -1255,8 +1255,7 @@ fonccion, la vèrsion spècifiâye ègziste pas ou ben vos èprovâd de cachiér
 'revdelete-no-file' => 'Lo fichiér spècifiâ ègziste pas.',
 'revdelete-show-file-confirm' => 'Est-o que vos éte de sûr de volêr vêre na vèrsion suprimâye du fichiér « <nowiki>$1</nowiki> » du $2 a $3 ?',
 'revdelete-show-file-submit' => 'Ouè',
-'revdelete-selected' => "'''{{PLURAL:$2|Vèrsion chouèsia|Vèrsions chouèsies}} de [[:$1]] :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Èvènement du jornal chouèsi|Èvènements du jornal chouèsis}} :'''",
+'logdelete-selected' => '{{PLURAL:$1|Èvènement du jornal chouèsi|Èvènements du jornal chouèsis}} :',
 'revdelete-confirm' => 'Se vos plét, confirmâd qu’o est franc cen que vos voléd fâre, que vos en compregnéd les consèquences et pués que vos o féte en acôrd avouéc les [[{{MediaWiki:Policy-url}}|règlles de dedens]].',
 'revdelete-suppress-text' => "La rèprèssion dêt étre empleyêe '''ren que''' dens cetos câs :
 * Enformacions que pôvont étre difamatouères
index b4c9a9c..4ca6abe 100644 (file)
@@ -748,7 +748,7 @@ Dü könst didiar tiitel üüb ööder sidjen [[Special:Search/{{PAGENAME}}|sch
 <span class="plainlinks">uun [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logbuken schük] of detdiar sidj [{{fullurl:{{FULLPAGENAME}}|action=edit}} bewerke]</span>.',
 'noarticletext-nopermission' => 'Üüb detdiar sidj stäänt noch niks, oober dü mutst diar uk niks iinskriiw.
 Dü könst diar üüb ööder sidjen efter [[Special:Search/{{PAGENAME}}|schük]] of a <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAME}}}} logbuken uunluke].</span>',
-'missing-revision' => 'Det werjuun #$1 faan det sidj "{{PAGENAME}}" jaft at ei.
+'missing-revision' => 'Det werjuun #$1 faan det sidj "{{FULLPAGENAME}}" jaft at ei.
 
 Det komt diar miast faan, dat en ual ferwisang stregen wurden as.
 Dü könst det uun\'t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} logbuk faan stregen sidjen] efterlees.',
@@ -973,8 +973,7 @@ Dü könst di ferskeel uunluke. Wan dü muar wed wel, luke iin uun't [{{fullurl:
 'revdelete-no-file' => 'Son dateinööm as ei diar.',
 'revdelete-show-file-confirm' => 'Wel dü würelk det stregen werjuun faan det datei „<nowiki>$1</nowiki>“ faan di $2, am a klook $3 uunluke?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Ütjsoocht werjuun|Ütjsoocht werjuunen}} faan [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Ütjsoocht logbukiindrach|Ütjsoocht logbukiindracher}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Ütjsoocht logbukiindrach|Ütjsoocht logbukiindracher}}:',
 'revdelete-text-text' => "Stregen werjuunen bliiw uun't werjuunshistoore, man dialen diarfaan san ei för arken tu sen.",
 'revdelete-text-file' => "Stregen datei-werjuunen bliiw uun't werjuunshistoore, man dialen diarfaan san ei för arken tu sen.",
 'logdelete-text' => 'Stregen logbuk-iindracher bliiw uun a logbuken, man dialen diarfaan san ei för arken tu sen.',
index 2c2203e..73f7c1b 100644 (file)
@@ -869,8 +869,7 @@ der kinne details wêze yn it [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPA
 'revdelete-nooldid-text' => 'Jo hawwe gjin doelferzje(s) foar dizze hanneling opjûn, de oanjûne ferzje bestiet net, of jo besykje de lêste ferzje te ferskûljen.',
 'revdelete-no-file' => 'De spesifisearre triem bestiet net.',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''Spesifisearre {{PLURAL:$2|ferzje|ferzjes}} fan [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|keazen lochboekregel|keazen lochboekregels}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|keazen lochboekregel|keazen lochboekregels}}:',
 'revdelete-legend' => 'Sichtberensbeheinings ynstelle.',
 'revdelete-hide-text' => 'De bewurke tekst ferskûlje',
 'revdelete-hide-image' => 'Triem ynhâld ferskûlje',
index a00da24..415f0c7 100644 (file)
@@ -732,8 +732,7 @@ Treoir: (rth) = difríocht ón leagan reatha, (rmh) = difríocht ón leagan roim
 'revisiondelete' => 'Scrios/díscrios leagain',
 'revdelete-show-file-confirm' => 'An bhfuil tú cinnte gur mhaith leat féach ar leasú scriosta don chomhad "<nowiki>$1</nowiki>" ó $2 ag $3?',
 'revdelete-show-file-submit' => 'Tá',
-'revdelete-selected' => "'''{{PLURAL:$2|Leagan roghnaithe|Leagain roghnaithe}} [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Teagmhas log roghnaithe|Teagmhais log roghnaithe}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Teagmhas log roghnaithe|Teagmhais log roghnaithe}}:',
 'revdelete-hide-text' => 'Folaigh leagan téacs',
 'revdelete-radio-same' => 'ná hathraigh',
 'revdelete-radio-set' => 'Is ea',
index b813c85..eaf6cfd 100644 (file)
@@ -648,8 +648,7 @@ $2',
 'revisiondelete' => '删除/反删除修改',
 'revdelete-nooldid-title' => '冇目标修订',
 'revdelete-nooldid-text' => '倷冇话个只操作𠮶目标修改。',
-'revdelete-selected' => "'''拣[[:$1]]𠮶$2回修订:'''",
-'logdelete-selected' => "'''拣'''$1'''𠮶$2只日志事件:'''",
+'logdelete-selected' => '拣$1𠮶$2只日志事件:',
 'revdelete-legend' => '设置可见性𠮶限制',
 'revdelete-hide-text' => '弆到修改内容',
 'revdelete-hide-image' => '弆到档内容',
index eedd32c..be6d134 100644 (file)
@@ -670,8 +670,7 @@ $2',
 'revisiondelete' => '刪除/反刪除修改',
 'revdelete-nooldid-title' => '冇目標修訂',
 'revdelete-nooldid-text' => '倷冇话箇隻操作嗰目标修改。',
-'revdelete-selected' => "'''揀[[:$1]]嗰$2回修訂:'''",
-'logdelete-selected' => "'''揀'''$1'''嗰$2隻日誌事件:'''",
+'logdelete-selected' => '揀$1嗰$2隻日誌事件:',
 'revdelete-legend' => '設置可見性嗰限制',
 'revdelete-hide-text' => '弆到修改內容',
 'revdelete-hide-image' => '弆到檔內容',
index 4742384..df3fcdc 100644 (file)
@@ -757,7 +757,7 @@ Mas e cleachdaiche gun urra a tha annad 's ma tha thu dhen bheachd nach eil na b
 no [{{fullurl:{{FULLPAGENAME}}|action=edit}} an duilleag seo a dheasachadh]</span>.',
 'noarticletext-nopermission' => 'Chan eil teacsa sam bith san duilleag seo an-dràsta.
 \'S urrainn dhut [[Special:Search/{{PAGENAME}}|tiotal na duilleige seo a lorg]] ann an duilleagan eile, no <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh]</span> ach chan eil cead agad an duilleag seo a chruthachadh.',
-'missing-revision' => 'Chan eil mùthadh #$1 na duilleige "{{PAGENAME}}" ann.
+'missing-revision' => 'Chan eil mùthadh #$1 na duilleige "{{FULLPAGENAME}}" ann.
 
 Mar is trice, tachraidh seo ma leanas tu ceangal san eachdraidh a tha fìor aosta \'s a tha a\' dol gu duilleag a chaidh a sguabadh às.
 Gheibh thu mion-fhiosrachadh ann an [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} loga nan duilleagan a chaidh a sguabadh às].',
@@ -989,8 +989,7 @@ Gheibh thu mion-fhiosrachadh air [{{fullurl:{{#Special:Log}}/suppress|page={{FUL
 'revdelete-no-file' => 'Chan eil am faidhle a shònraich thu ann.',
 'revdelete-show-file-confirm' => 'A bheil thu cinnteach gu bheil thu airson coimhead air mùthadh an fhaidhle "<nowiki>$1</nowiki>" a chaidh a sguabadh às $2 aig $3?',
 'revdelete-show-file-submit' => 'Tha',
-'revdelete-selected' => "'''{{PLURAL:$2|Lèirmheas|Lèirmheasan}} de [[:$1]] a thagh thu:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|An tachartas loga|Na tachartasan loga}} a thagh thu:'''",
+'logdelete-selected' => '{{PLURAL:$1|An tachartas loga|Na tachartasan loga}} a thagh thu:',
 'revdelete-confirm' => "Dearbh gu bheil thu airson seo a dhèanamh, gu bheil thu a' tuigsinn na thachras ri linn agus gu bheil thu a' dèanamh seo a-rèir [[{{MediaWiki:Policy-url}}|a' phoileasaidh]].",
 'revdelete-suppress-text' => "Cha bu chòir dhut mùchadh a chleachdadh '''ach''' ann an suidheachaidhean mar seo:
 * Fiosrachadh a dh'fhaodadh a bhith dìteachail
index 8008a20..b76b3b5 100644 (file)
@@ -1024,7 +1024,7 @@ Pode [[Special:Search/{{PAGENAME}}|procurar polo título desta páxina]] noutras
 ou [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar a páxina]</span>.',
 'noarticletext-nopermission' => 'Actualmente non hai ningún texto nesta páxina.
 Pode [[Special:Search/{{PAGENAME}}|procurar polo título desta páxina]] noutras páxinas ou <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ollar os rexistros relacionados]</span>, pero non ten os permisos necesarios para crear esta páxina.',
-'missing-revision' => 'A revisión nº$1 da páxina chamada "{{PAGENAME}}" non existe.
+'missing-revision' => 'A revisión nº$1 da páxina chamada "{{FULLPAGENAME}}" non existe.
 
 A miúdo, isto está provocado por seguir unha ligazón de historial obsoleta cara a unha páxina que foi borrada.
 O [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistro de borrados] contén máis detalles.',
@@ -1260,8 +1260,7 @@ función, a revisión especificada non existe ou está intentando agochar a revi
 'revdelete-no-file' => 'O ficheiro especificado non existe.',
 'revdelete-show-file-confirm' => 'Está seguro de querer ver unha revisión borrada do ficheiro "<nowiki>$1</nowiki>" do día $2 ás $3?',
 'revdelete-show-file-submit' => 'Si',
-'revdelete-selected' => "'''{{PLURAL:\$2|Revisión seleccionada|Revisións seleccionadas}} de \"[[:\$1]]\":'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Rexistro de evento seleccionado|Rexistro de eventos seleccionados}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Rexistro de evento seleccionado|Rexistro de eventos seleccionados}}:',
 'revdelete-confirm' => 'Por favor, confirme que quere levar a cabo esta acción, que comprende as consecuencias e que o fai de acordo [[{{MediaWiki:Policy-url}}|coas políticas]].',
 'revdelete-suppress-text' => "A eliminación '''unicamente''' debería utilizarse nos seguintes casos:
 * Información potencialmente difamatoria
index 2da1db1..32f28fe 100644 (file)
@@ -672,8 +672,7 @@ $2',
 'revdelete-no-file' => 'Τὸ καθωρισμένον ἀρχεῖον οὐχ ὑπάρχει.',
 'revdelete-show-file-confirm' => 'Βέβαιος εἶ περὶ τῆς προβολῆς διαγεγραμμένης ἀναθεωρήσεως τινὸς τοῦ ἀρχείου "<nowiki>$1</nowiki>" ἐκ τῆς $2 ἐν τῇ $3;',
 'revdelete-show-file-submit' => 'Ναί',
-'revdelete-selected' => "'''{{PLURAL:$2|Ἐπειλεγμένη ἀναθεώρησις|Ἐπειλεγμέναι ἀναθεωρήσεις}} τοῦ [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Ἐπειλεγμένον γεγονὸς καταλόγου|Ἐπειλεγμένα γεγονὀτα καταλόγου}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Ἐπειλεγμένον γεγονὸς καταλόγου|Ἐπειλεγμένα γεγονὀτα καταλόγου}}:',
 'revdelete-legend' => 'Θέτειν περιορισμοῦς ὁρατότητος',
 'revdelete-hide-text' => 'Κρύπτειν κείμενον ἀναθεωρήσεως',
 'revdelete-hide-image' => 'Κρύπτειν περιεχόμενον ἀρχείου',
index 59a4f1a..4268bab 100644 (file)
@@ -840,7 +840,7 @@ oder [{{fullurl:{{FULLPAGENAME}}|action=edit}} die Syte bearbeite]</span>.',
 'noarticletext-nopermission' => 'In däre Syte het s zur Zyt no kei Text.
 Du chasch dää Titel uf andre Syte [[Special:Search/{{PAGENAME}}|sueche]]
 oder <span class="plainlinks">in dr zuegherige [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbiecher sueche].</span> Du derfsch aber die Syte nit aalege.',
-'missing-revision' => 'D Version $1 vu dr Syte mit Name „{{PAGENAME}}“ git s nit.
+'missing-revision' => 'D Version $1 vu dr Syte mit Name „{{FULLPAGENAME}}“ git s nit.
 
 Dää Fähler chunnt normalerwyys dur e veraltete Link zue dr Versionsgschicht vun ere Syte, wu in dr Zwischezyt glescht woren isch.
 Einzelheite chasch im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lesch-Logbuech] bschaue.',
@@ -1063,8 +1063,7 @@ Du chasch dää Unterschid allno aaluege; Details het's im [{{fullurl:{{#Special
 'revdelete-no-file' => 'D Datei, wu Du aagee hesch, git s nit.',
 'revdelete-show-file-confirm' => 'Bisch sicher, ass Du di glescht Version vu dr Datei „<nowiki>$1</nowiki>“ vum $2 am $3 witt aaluege?',
 'revdelete-show-file-submit' => 'Jo',
-'revdelete-selected' => "'''{{PLURAL:$2|Usgwehlti Version|Usgwehlti Versione}} vu [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Usgwehlte Logbuechyytrag|Usgwehlti Logbuechyytreg}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Usgwehlte Logbuechyytrag|Usgwehlti Logbuechyytreg}}:',
 'revdelete-confirm' => 'Bitte tue bstetige, ass Du vor hesch, des z mache, d Konsequänze drus verstohsch un s machsch in Inbereinstimmig mit dr [[{{MediaWiki:Policy-url}}|Richtlinie]].',
 'revdelete-suppress-text' => "Unterdruckige sotte '''nume''' in däne Fäll bruucht wäre:
 * Nit aabrochti Informatione
index e317b35..a05027d 100644 (file)
@@ -1091,8 +1091,7 @@ $3 દ્વારા અપાયેલ કારણ છે ''$2''",
 'revdelete-no-file' => 'વર્ણવેલી ફાઈલ અસ્તિત્વમાં નથી',
 'revdelete-show-file-confirm' => 'શું તમને ખાત્રી છે કેતમે $2 તારીખ $3 વાગ્યા સુધીના "<nowiki>$1</nowiki>" ફાઇલ ના ફેરફાર જોવા માંગો છો?',
 'revdelete-show-file-submit' => 'હા',
-'revdelete-selected' => "''' [[:$1]] ના {{PLURAL:$2|પસંદ કરેલ ફેરફાર |પસંદ કરેલ ફેરફારો}}: '''",
-'logdelete-selected' => "'''{{PLURAL:$1|પસંદગી કરેલ લોગ ઘટના | પસંદગી કરેલ લોગ ઘટનાઓ }}:'''",
+'logdelete-selected' => '{{PLURAL:$1|પસંદગી કરેલ લોગ ઘટના | પસંદગી કરેલ લોગ ઘટનાઓ }}:',
 'revdelete-confirm' => 'કૃપયા પુષ્ટિ કરો કે તમે શું કરી રહ્યા છો તેની અને તેના પરિણામોની તમને જાણ છે અને તમે આ બધું  [[{{MediaWiki:Policy-url}}|the policy]] અ6તર્ગત કરી રહ્યાં છો.',
 'revdelete-suppress-text' => "બળ પૂર્વક છુપાવવું \"માત્ર\" આજ સંજોગોમાં કરી શકાશે:
 * સંભવતઃ ભયાજનક માહિતી 
index 7605a2d..aff2bc7 100644 (file)
@@ -404,6 +404,10 @@ $2',
 'namespaceprotected' => "汝還無權限編輯'''$1'''名字空間嘅頁面。",
 'customcssprotected' => '汝還無權限編輯邇隻CSS頁面,因為其包含矣其他用戶嘅個人設置。',
 'customjsprotected' => '汝還無權限去編輯邇隻JavaScript頁面,因為其包含矣另一用戶嘅個人設定。',
+'mycustomcssprotected' => '汝無權限修改邇頁CSS。',
+'mycustomjsprotected' => '汝無編輯邇頁JavaScript之權限。',
+'myprivateinfoprotected' => '汝無權限編輯汝个個人信息。',
+'mypreferencesprotected' => '汝無權限編輯汝个個人設定。',
 'ns-specialprotected' => '邇兜特殊頁面係毋做得編輯嘅。',
 'titleprotected' => "邇隻標題已經分[[User:$1|$1]]保護來防止建立。理由係''$2''。",
 'filereadonlyerror' => '無辦法修改文件「$1」因為文件庫「$2」處於唯讀模式。 !
@@ -428,6 +432,7 @@ $2',
 'yourname' => '用戶名:',
 'userlogin-yourname' => '用戶名',
 'userlogin-yourname-ph' => '輸入汝嘅用戶名',
+'createacct-another-username-ph' => '輸入用戶名:',
 'yourpassword' => '密碼:',
 'userlogin-yourpassword' => '密碼',
 'userlogin-yourpassword-ph' => '輸入汝嘅密碼',
@@ -458,10 +463,14 @@ $2',
 'gotaccountlink' => '登入',
 'userlogin-resetlink' => '毋記得汝嘅登入信息?',
 'userlogin-resetpassword-link' => '添忘訖汝嘅密碼?',
+'userlogin-loggedin' => '汝已作為{{GENDER:$1|$1}}登錄。
+利用以下表單以作為另一賬戶登錄。',
 'createacct-join' => '輸入汝嘅基本資料:',
+'createacct-another-join' => '在下方輸入新帳號个資訊。',
 'createacct-emailrequired' => '電郵地址:',
 'createacct-emailoptional' => '電郵地址(可選)',
 'createacct-email-ph' => '設置電郵地址',
+'createacct-another-email-ph' => '輸入電郵地址',
 'createaccountmail' => '使用一隻臨時嘅隨機密碼,並將其發送到指定嘅電子郵件地址',
 'createacct-realname' => '實名(可選)',
 'createaccountreason' => '原因:',
@@ -520,20 +529,22 @@ $2',
 'acct_creation_throttle_hit' => '在邇隻wiki上係話訪客利用汝个IP地址在昨天創建矣$1個賬戶,係在邇段時間肚的上限。
 結果利用這個IP地址个訪客在邇段時間中無辦法創建更多个賬戶。',
 'emailauthenticated' => '汝嘅電郵地址已經於$2 $3確認。',
-'emailnotauthenticated' => '汝嘅郵箱地址<strong>還無分認証</strong>。以下功能將毋會發送任何郵件。',
+'emailnotauthenticated' => '汝个電郵位址還㬟確認。
+將收毋到以下功能相關个電郵。',
 'noemailprefs' => '在嘅嘅偏好設定肚指定一隻電子郵件地址來使用邇隻功能。',
 'emailconfirmlink' => '確認汝嘅郵箱地址',
 'invalidemailaddress' => '郵箱地址格式不正確,請輸入正確个郵箱位址或清空該輸入框。',
+'cannotchangeemail' => '本Wiki毋允許對帳號个電子郵件位址進行變更。',
 'emaildisabled' => '邇隻網站毋可以發送電子郵件。',
 'accountcreated' => '已建立賬戶',
-'accountcreatedtext' => '$1嘅賬戶已經分建立。',
+'accountcreatedtext' => '[[{{ns:User}}:$1|$1]]([[{{ns:User talk}}:$1|討論]])的賬戶已經畀建立。',
 'createaccount-title' => '在{{SITENAME}}肚建立新賬戶',
 'createaccount-text' => '有人在{{SITENAME}}肚利用汝嘅電郵創建矣一隻喊做 "$2" 嘅新賬戶($4),密碼係 "$3" 。汝應該立即登入並更改密碼。
 
 如果該賬戶建立錯誤嘅話,汝可以忽略邇條訊息。',
 'usernamehasherror' => '用戶名毋可以包含Hash字符',
 'login-throttled' => '汝已經嘗試多次登入動作。
-請等再試。',
+請等$1後再試。',
 'login-abort-generic' => '登入錯誤 - 中止',
 'loginlanguagelabel' => '語言:$1',
 'suspicious-userlogout' => '汝登出嘅要求已經分拒絕,因為其可能係由已損壞嘅瀏覽器或者緩存代理傳送。',
@@ -795,8 +806,7 @@ Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he '
 所指定嘅修訂版本毋存在,或者汝嘗試去隱藏今下嘅修訂版本。',
 'revdelete-no-file' => '指定嘅文件毋存在',
 'revdelete-show-file-submit' => '係',
-'revdelete-selected' => "'''選取[[:$1]]嘅$2次修訂:'''",
-'logdelete-selected' => "'''Chhí-chhṳ '''$1''' ke $2-ke ngit-ki hong-muk:'''",
+'logdelete-selected' => 'Chhí-chhṳ $1 ke $2-ke ngit-ki hong-muk:',
 'revdelete-legend' => 'Sat-thin siû-thin han-chṳ:',
 'revdelete-hide-text' => '隱藏修訂版本文字',
 'revdelete-hide-image' => '隱藏文件內容',
@@ -863,7 +873,7 @@ Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he '
 'search-section' => '(段落 $1)',
 'search-suggest' => '汝係毋係尋:$1',
 'search-interwiki-caption' => '姊妹計劃',
-'search-interwiki-default' => '$1é \85çµ\90æ\9e\9c:',
+'search-interwiki-default' => 'ä¾\86è\87ª$1å\98\85çµ\90æ\9e\9c:',
 'search-interwiki-more' => '(還較多)',
 'searchrelated' => '相關',
 'searchall' => '全部',
@@ -1367,7 +1377,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 下背係'''$1'''今下嘅保護級別:",
 'protect-locked-access' => "汝嘅賬戶權限做毋得修改保護級別。
 下背係'''$1'''今下嘅保護級別:",
-'protect-cascadeon' => '下背嘅{{PLURAL:$1|一個|多個}}頁面包含緊本頁面嘅同時,啟動矣連鎖保護,故所本頁面目前也分保護,還吂做得編寫。汝做得設定本頁面嘅保護級別,毋過邇並不會對連鎖保護有所影響。',
+'protect-cascadeon' => '下背嘅$1嘅頁面包含緊本頁面嘅同時,還啟動矣連鎖保護,故所本頁面目前也分保護,還㬟做得編寫。汝做得設定本頁面嘅保護級別,毋過邇影響毋到連鎖保護。',
 'protect-default' => '容許所有用戶',
 'protect-fallback' => 'Sî-yeu "$1" ke hí-khó',
 'protect-level-autoconfirmed' => 'Kim-chṳ́  sîn-ke lâu hàn-mò chu-chhak ke yung-fu',
@@ -1461,7 +1471,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'whatlinkshere-next' => '後背$1隻',
 'whatlinkshere-links' => '←連入',
 'whatlinkshere-hideredirs' => '$1重定向',
-'whatlinkshere-hidetrans' => '$1å\8c\85å\90«',
+'whatlinkshere-hidetrans' => '$1åµ\8cå\85¥',
 'whatlinkshere-hidelinks' => '$1鏈接',
 'whatlinkshere-hideimages' => '$1條文件鏈接',
 'whatlinkshere-filters' => '過濾器',
index d86771f..a9e7d45 100644 (file)
@@ -1109,15 +1109,15 @@ $2
 באפשרותכם [[Special:Search/{{PAGENAME}}|לחפש את כותרת הדף]] בדפים אחרים,
 או <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} לחפש ביומנים הרלוונטיים]</span>,
 אך אינכם מורשים ליצור את הדף.',
-'missing-revision' => 'גרסה #$1 של הדף "{{PAGENAME}}" אינה קיימת.
+'missing-revision' => 'גרסה #$1 של הדף "{{FULLPAGENAME}}" אינה קיימת.
 
 זה נגרם בדרך כלל על־ידי לחיצה על קישור ישן לגרסה קודמת של דף שנמחק.
 אפשר למצוא פרטים ב[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} יומן המחיקות].',
 'userpage-userdoesnotexist' => 'חשבון המשתמש "$1" אינו רשום.
 אנא בדקו אם ברצונכם ליצור/לערוך דף זה.',
 'userpage-userdoesnotexist-view' => 'חשבון המשתמש "$1" אינו רשום.',
-'blocked-notice-logextract' => '{{GENDER:$1|×\94×\9eשת×\9eש ×\94×\96×\94 ×\97ס×\95×\9d\94×\9eשת×\9eשת ×\94×\96×\90ת חסומה}} כרגע.
-הפעולה האחרונה ביומן החסימות מוצגת להלן לעיון:',
+'blocked-notice-logextract' => '{{GENDER:$1|×\94×\9eשת×\9eש ×\94×\96×\94 ×\97ס×\95×\9d\94×\9eשת×\9eשת ×\94×\96×\95 חסומה}} כרגע.
+הפעולה האחרונה ביומן החסימות מוצגת להלן:',
 'clearyourcache' => "'''הערה:''' לאחר השמירה, עליכם לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
 * '''פיירפוקס / ספארי:''' לחצו על Shift בעת לחיצתכם על '''העלה מחדש''' (Reload), או הקישו על ''Ctrl-F5'' או על ''Ctrl-R'' (או על ''<span dir=\"ltr\">⌘-R</span>'' במחשב מק)
 * '''גוגל כרום:''' לחצו על ''Ctrl-Shift-R'' (או על ''<span dir=\"ltr\">⌘-Shift-R</span>'' במק)
@@ -1341,11 +1341,12 @@ $2
 'revdelete-no-file' => 'הקובץ שציינת אינו קיים.',
 'revdelete-show-file-confirm' => 'האם אתם בטוחים שברצונכם לצפות בגרסה המחוקה של הקובץ "<nowiki>$1</nowiki>" מתאריך $3, $2?',
 'revdelete-show-file-submit' => 'כן',
-'revdelete-selected' => "'''ה{{PLURAL:$2|גרסה שנבחרה|גרסאות שנבחרו}} מתוך הדף [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|פעולת היומנים שנבחרה|פעולות היומנים שנבחרו}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|הגרסה שנבחרה|הגרסאות שנבחרו}} מתוך [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|גרסת הקובץ שנבחרה|גרסאות הקובץ שנבחרו}} מתוך [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|פעולת היומן שנבחרה|פעולות היומן שנבחרו}}:',
 'revdelete-text-text' => 'גרסאות שנמחקו עדיין תופענה בהיסטוריית הדף, אך חלקים מהתוכן שלהן לא יהיו זמינים לציבור.',
 'revdelete-text-file' => 'גרסאות קבצים שנמחקו עדיין תופענה בהיסטוריית הקובץ, אך חלקים מהתוכן שלהן לא יהיו זמינים לציבור.',
-'logdelete-text' => 'פע×\95×\9c×\95ת ×\99×\95×\9e× ×\99×\9d שנמחקו עדיין תופענה בדפי היומנים, אך חלקים מהתוכן שלהן לא יהיו זמינים לציבור.',
+'logdelete-text' => 'פע×\95×\9c×\95ת ×\99×\95×\9e×\9f שנמחקו עדיין תופענה בדפי היומנים, אך חלקים מהתוכן שלהן לא יהיו זמינים לציבור.',
 'revdelete-text-others' => 'מפעילי מערכת אחרים באתר עדיין יוכלו לגשת לתוכן הנסתר ויוכלו לשחזר אותו שוב דרך הממשק הזה, אלא אם כן תוגדרנה הגבלות נוספות.',
 'revdelete-confirm' => 'אנא אשרו שזה אכן מה שאתם מתכוונים לעשות, שאתם מבינים את התוצאות של מעשה כזה, ושהמעשה מבוצע בהתאם ל[[{{MediaWiki:Policy-url}}|נוהלי האתר]].',
 'revdelete-suppress-text' => "יש להשתמש בהסתרה מלאה '''אך ורק''' במקרים הבאים:
@@ -2381,7 +2382,7 @@ $1',
 # Book sources
 'booksources' => 'משאבי ספרות חיצוניים',
 'booksources-search-legend' => 'חיפוש משאבי ספרות חיצוניים',
-'booksources-isbn' => 'מסת"ב:',
+'booksources-isbn' => 'מסת"ב (ISBN):',
 'booksources-go' => 'הצגה',
 'booksources-text' => 'להלן רשימת קישורים לאתרים אחרים המוכרים ספרים חדשים ויד־שנייה, ושבהם עשוי להיות מידע נוסף לגבי ספרים שאתם מחפשים:',
 'booksources-invalid-isbn' => 'המסת"ב שניתן כנראה אינו תקין; אנא בדקו אם ביצעתם טעויות בהעתקה מהמידע המקורי.',
@@ -2798,8 +2799,8 @@ $1',
 'sp-contributions-logs' => 'יומנים',
 'sp-contributions-talk' => 'שיחה',
 'sp-contributions-userrights' => 'ניהול הרשאות משתמש',
-'sp-contributions-blocked-notice' => '{{GENDER:$1|×\94×\9eשת×\9eש ×\94×\96×\94 ×\97ס×\95×\9d\94×\9eשת×\9eשת ×\94×\96×\90ת חסומה}} כרגע.
-הפעולה האחרונה ביומן החסימות מוצגת להלן לעיון:',
+'sp-contributions-blocked-notice' => '{{GENDER:$1|×\94×\9eשת×\9eש ×\94×\96×\94 ×\97ס×\95×\9d\94×\9eשת×\9eשת ×\94×\96×\95 חסומה}} כרגע.
+הפעולה האחרונה ביומן החסימות מוצגת להלן:',
 'sp-contributions-blocked-notice-anon' => 'כתובת IP זו חסומה כרגע.
 הפעולה האחרונה ביומן החסימות מוצגת להלן:',
 'sp-contributions-search' => 'חיפוש תרומות',
index 296a0c5..c1723a6 100644 (file)
@@ -930,7 +930,7 @@ $2
 'noarticletext-nopermission' => 'फ़िलहाल इस पृष्ठ पर कोई सामग्री नहीं है।
 आप अन्य पृष्ठों में [[Special:Search/{{PAGENAME}}|इस शीर्षक की खोज]] कर सकते हैं,
 या <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} संबंधित लॉग खोज सकते हैं]</span>, परन्तु आपको यह पृष्ठ बनाने की अनुमति नहीं है।',
-'missing-revision' => '"{{PAGENAME}}" पृष्ठ का अवतरण #$1 मौजूद नहीं है।
+'missing-revision' => '"{{FULLPAGENAME}}" पृष्ठ का अवतरण #$1 मौजूद नहीं है।
 
 आम तौर पर यह एक हटाए गए पृष्ठ के पुराने लिंक पर क्लिक करने से होता है।
 अधिक जानकारी के लिए आप [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने का लॉग] देख सकते हैं।',
@@ -1169,8 +1169,7 @@ $2
 'revdelete-no-file' => 'निर्दिष्ट फ़ाइल मौजूद नहीं है।',
 'revdelete-show-file-confirm' => 'क्या आप वाकई फ़ाइल "<nowiki>$1</nowiki>" के $2 को $3 बजे बने, हटाए जा चुके अवतरण को देखना चाहते हैं?',
 'revdelete-show-file-submit' => 'हाँ',
-'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|का चुना हुआ|के चुने हुए}} अवतरण:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|चुना हुआ|चुने हुए}} लॉग इवेंट:'''",
+'logdelete-selected' => '{{PLURAL:$1|चुना हुआ|चुने हुए}} लॉग इवेंट:',
 'revdelete-confirm' => 'पुष्टि करें कि आप यह कार्य करना चाहते हैं, आप इसका परिणाम समझते हैं, और आप ये [[{{MediaWiki:Policy-url}}|नीति]] के अनुसार कर रहे हैं।',
 'revdelete-suppress-text' => 'छिपाने का प्रयोग <strong>केवल</strong> इन परिस्थितियों में होना चाहिए:
 * संभावित अपमानजनक जानकारी
@@ -2444,7 +2443,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'इस पृष्ठ का संपादन इतिहास $1 से अधिक {{PLURAL:$1|अवतरण}} होने की वजह से बहुत बड़ा है।
 इसे हटाने से {{SITENAME}} के डाटाबेस की गतिविधियों में व्यवधान आ सकता है;
 कृपया सोच समझ कर आगे बढ़ें।',
-'deleting-backlinks-warning' => "'''चेतावनी:''' जो पृष्ठ आप हटाने जा रहे हैं उससे [[विशेष:कड़ियाँ/{{FULLPAGENAME}}|अन्य पृष्ठ]] जुड़ते हैं अथवा उसे ट्रांसक्लूड करते हैं।",
+'deleting-backlinks-warning' => "'''चेतावनी:''' जो पृष्ठ आप हटाने जा रहे हैं उससे [[Special:WhatLinksHere/{{FULLPAGENAME}}|अन्य पृष्ठ]] जुड़ते हैं अथवा उसे ट्रांसक्लूड करते हैं।",
 
 # Rollback
 'rollback' => 'संपादन वापिस लें',
index fcc7c72..472b4cc 100644 (file)
@@ -748,7 +748,7 @@ nai to [{{fullurl:{{FULLPAGENAME}}|action=edit}} ii panna ke badlo]</span>.',
 'noarticletext-nopermission' => 'Abhi ii panna me koi chij likha nai hae.
 Aap sakta hae [[Special:Search/{{PAGENAME}}|ii panna ke title ke khoje]] duusra panna me,
 nai to <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>, lekin aap ke ii panna ke banae ke ijaaja tnai hae.',
-'missing-revision' => 'Panna "{{PAGENAME}}" me #$1 badlao nai hae.
+'missing-revision' => 'Panna "{{FULLPAGENAME}}" me #$1 badlao nai hae.
 Iske kaaran ii hoe sake hae ki ek mitawa gais panna se link karaa jaawe hae.
 Iske baare me aur jaankari [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log] me paawa jaae sake hae.',
 'userpage-userdoesnotexist' => 'User account "<nowiki>$1</nowiki>" abi registered nai hai.
@@ -977,8 +977,7 @@ Aap ii diff ke dekhe saktaa hae: iske baare me aur jaan kaari [{{fullurl:{{#Spec
 'revdelete-no-file' => 'Chuna gais file abhi nai banawa gais hai.',
 'revdelete-show-file-confirm' => 'Ka aap sure hai ki aap file ke mitawa gais revision ke dekhe mangtaa hai "<nowiki>$1</nowiki>" $2 se $3 talak?',
 'revdelete-show-file-submit' => 'Haan',
-'revdelete-selected' => "'''{{PLURAL:$2|Selected badlao|Selected badlao}} of [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Chuna gais log event|Chuna gais log events}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Chuna gais log event|Chuna gais log events}}:',
 'revdelete-confirm' => 'Meharbani kar ke aap ii confirm karo ki aap ii kare mangta hae, aap iske asar ke samajhta hae, aur iske aap [[{{MediaWiki:Policy-url}}|the policy]] ke anusar karta hae.',
 'revdelete-suppress-text' => "Suppression ke '''khaali''' ii chij ke khatir kaam me lawa jaae sake hai:
 * Aapan baare me jaankari thik nai hai
index 894e93d..feb3c4b 100644 (file)
@@ -674,7 +674,7 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} islan ini nga pahina]</span>.',
 'noarticletext-nopermission' => 'Wala subong sang teksto ang sini nga panid.
 Pwede ka [[Special:Search/{{PAGENAME}}|mangita para sa titulo sang ini nga panid]] sa iban man nga panid,
 ukon <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mangita ka sang kaparehas nga logs]</span>.',
-'missing-revision' => 'Ang ini nga pag-ilis nga #$1 sang panid nga ginhinanglan nga "{{PAGENAME}}" wala naga-eksister.
+'missing-revision' => 'Ang ini nga pag-ilis nga #$1 sang panid nga ginhinanglan nga "{{FULLPAGENAME}}" wala naga-eksister.
 
 Ini kalabanan ginabuhat sang nagasunod nga wala na mabag-o nga link sang hisayranay sa isa ka panid nga gindula na.
 Ang mga detalye mahimo nga makita sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
@@ -904,8 +904,7 @@ ang ini nga buluhaton wala, ukon gahimakas ka nga taguon ang karon nga pagbag-o.
 'revdelete-no-file' => 'Ang ginatumod nga hilera wala naga-eksister.',
 'revdelete-show-file-confirm' => 'Sigurado ka bala nga luyag mo makita ang ginpanas nga pagbag-o sang hilera nga "<nowiki>$1</nowiki>" halin sang $2 sa $3?',
 'revdelete-show-file-submit' => 'Huo',
-'revdelete-selected' => "'''{{PLURAL:$2|Ginpili nga pagbag-o|Ginpili nga mga pagbag-o}} ni [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Ginpili nga hinatabo sa log|Ginpili nga mga hinatabo sa log}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Ginpili nga hinatabo sa log|Ginpili nga mga hinatabo sa log}}:',
 'revdelete-confirm' => 'Palihog konpermar nga luyag mo ini himuon, nga imo naintiendihan ang mga konsekwensya, kag ginahimo mo ini suno sa [[{{MediaWiki:Policy-url}}|polisiya]].',
 'revdelete-suppress-text' => "Ang pagpahugot nagakadapat '''lamang''' nga pagagamiton sa masunod nga kaso:
 * Nagapang-guba sang dignindad nga impormasyon
index b515df2..0c009fe 100644 (file)
@@ -1010,7 +1010,7 @@ Možete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranic
 ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.',
 'noarticletext-nopermission' => 'Ova stranica nema sadržaja.
 Možete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim stranicama ili <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane evidencije]</span>, ali ne možete stvoriti ovu stranicu.',
-'missing-revision' => 'Uređivanje broj $1 na stranici "{{PAGENAME}}" ne postoji.
+'missing-revision' => 'Uređivanje broj $1 na stranici "{{FULLPAGENAME}}" ne postoji.
 
 Ovo je obično uzrokovano kada kliknete na zastarjelu poveznicu na stranice koja je obrisana.
 Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} evidenciji brisanja].',
@@ -1228,8 +1228,7 @@ Možete ju pregledati; više podataka možete vidjeti u [{{fullurl:{{#Special:Lo
 'revdelete-no-file' => 'Navedena datoteka ne postoji.',
 'revdelete-show-file-confirm' => 'Jeste li sigurni da želite pregledati izbrisanu inačicu datoteke "<nowiki>$1</nowiki>" od $2 u $3?',
 'revdelete-show-file-submit' => 'Da',
-'revdelete-selected' => "'''{{PLURAL:$2|Odabrana izmjena|Odabrane izmjene|Odabrane izmjene}} stranice [[$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Odabrani zapis u evidenciji|Odabrani zapisi u evidenciji}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Odabrani zapis u evidenciji|Odabrani zapisi u evidenciji}}:',
 'revdelete-confirm' => 'Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Sklanjanje uređivanja treba raditi '''iznimno''' u slijedećih par slučajeva:
 * Privatne informacije neprilične javnom mediju tipa
diff --git a/languages/messages/MessagesHrx.php b/languages/messages/MessagesHrx.php
new file mode 100644 (file)
index 0000000..8079fbd
--- /dev/null
@@ -0,0 +1,2625 @@
+<?php
+/** Hunsrik (Hunsrik)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ * @author Paul Beppler
+ */
+
+$fallback = 'de';
+
+$messages = array(
+# User preference toggles
+'tog-underline' => 'Links (Verbinnunge) unnerstreiche:',
+'tog-hideminor' => 'Klen Ännrunge in den "Letzte Ännrunge" ausblenne',
+'tog-hidepatrolled' => 'Kontrollierte Ännrunge in den "Letzte Ännrungen" ausblenne',
+'tog-newpageshidepatrolled' => 'Kontrollierte Seite bei den "Neie Seite" ausblenne',
+'tog-extendwatchlist' => 'Beobachtungslist erweitre, um statt nuer der letzte Ännrung alle Ännrunge oonzuzeiche.',
+'tog-usenewrc' => 'Ännrunge uff "Letzte Ännrunge" und Beobachtungslist noh Seit gruppiere',
+'tog-numberheadings' => 'Üwerschrifte automatisch nummeriere',
+'tog-showtoolbar' => 'Beoorbeite-Werrekzeichleiste oonzeiche',
+'tog-editondblclick' => 'Seite mit Doppelklick beoorbeite',
+'tog-editsectiononrightclick' => 'Einzelne Abschnitte per Rechtsklick beoorbeite',
+'tog-rememberpassword' => 'Mit dem Browser dauerhaft oongemeldet bleiwe (maximal $1 {{PLURAL:$1|Tooch|Tooche}})',
+'tog-watchcreations' => 'Sellebst erstellt Seite und hochgeloodne Dateie automatisch beobachte',
+'tog-watchdefault' => 'Sellebst geännert Seit und Dateie automatisch beobachte',
+'tog-watchmoves' => 'Sellebst verschobne Seite und Dateie automatisch beobachte',
+'tog-watchdeletion' => 'Sellebst gelöscht Seite und Dateie automatisch beobachte',
+'tog-minordefault' => 'Eichne Ännrunge standardmässich als geringfüchich markiere',
+'tog-previewontop' => 'Vorschau owerhalleb von der Beoorbeitungsfenster oonzeiche',
+'tog-previewonfirst' => 'Beim earscht Beoorbeit immer die Vorschau oonzeiche',
+'tog-enotifwatchlistpages' => 'Bei Ännrungen an beobachtete Seite orrer Dateie E-Mails schicke',
+'tog-enotifusertalkpages' => 'Bei Ännrunge an meiner Benutzer-Diskussionsseit E-Mails schicke',
+'tog-enotifminoredits' => 'Aooch bei klene Ännrunge an Seite und Dateie E-Mails schicke',
+'tog-enotifrevealaddr' => 'Mein E-Mail-Adress in Benachrichtichungs-E-Mails oonzeiche',
+'tog-shownumberswatching' => 'Oonzoohl der beobachtende Benutzer oonzeiche',
+'tog-oldsig' => 'Voarhandne Signatuar:',
+'tog-fancysig' => 'Signatuar als Wikitext behandle (ohne automatische Verlinkung)',
+'tog-uselivepreview' => 'Voarschau sofort oonzeiche (experimentell)',
+'tog-forceeditsummary' => 'Warne, soweit beim Speichre die Zusammerfassung fehlt',
+'tog-watchlisthideown' => 'Eigne Beoorbeitunge in der Beobachtungslist ausblenne',
+'tog-watchlisthidebots' => 'Beoorbeitunge doorrich Bots in der Beobachtungslist ausblenne',
+'tog-watchlisthideminor' => 'Klene Beoorbeitunge in der Beobachtungslist ausblenne',
+'tog-watchlisthideliu' => 'Beoorbeitunge oongemeldeter Benutzer in der Beobachtungslist ausblenne',
+'tog-watchlisthideanons' => 'Beoorbeitunge anonymer Benutzer (IP-Adresse) in der Beobachtungslist ausblennen',
+'tog-watchlisthidepatrolled' => 'Kontrollierte Ännrunge in der Beobachtungslist ausblenne',
+'tog-ccmeonemails' => 'Schick mir Kopiee von der E-Mails, wo ich annre Benutzer schicke',
+'tog-diffonly' => 'Beim Versionsvergleich nuar die Unnerschiede und net die vollständiche Seit oonzeiche',
+'tog-showhiddencats' => 'Oonzeiche versteckter Kategoriee',
+'tog-norollbackdiff' => 'Unnerschied noh dem Zurücksetze unnerdrücke',
+'tog-useeditwarning' => 'Warne, soweit en zur Beoorbeitung geöffnete Seit verloss weard, wo net gespeicherte Ännrunge enthält',
+'tog-prefershttps' => 'Wenn oongemeldet, immer en sichre Verbinnung benutze.',
+
+'underline-always' => 'immer',
+'underline-never' => 'nie',
+'underline-default' => 'abhängig von der Benutzerowerfläche orrer Browserinstellung (d.h. Navegationsprogramminstellung)',
+
+# Font style option in Special:Preferences
+'editfont-style' => 'Schriftoort für den Text im Beoorbeitungsfenster:',
+'editfont-default' => 'Browserstandard',
+'editfont-monospace' => 'Schriftoort (Fontetyp) mit fester Zeichebreit',
+'editfont-sansserif' => 'Serifelose Groteskschrift',
+'editfont-serif' => 'Schrift mit Serife',
+
+# Dates
+'sunday' => 'Sonntach',
+'monday' => 'Montach',
+'tuesday' => 'Dienstach',
+'wednesday' => 'Mittwoch',
+'thursday' => 'Donnerstooch',
+'friday' => 'Freitach',
+'saturday' => 'Samstach',
+'sun' => 'So',
+'mon' => 'Mo',
+'tue' => 'Di',
+'wed' => 'Mi',
+'thu' => 'Do',
+'fri' => 'Fr',
+'sat' => 'Sa',
+'january' => 'Januar',
+'february' => 'Februar',
+'march' => 'März',
+'april' => 'April',
+'may_long' => 'Mai',
+'june' => 'Juni',
+'july' => 'Juli',
+'august' => 'August',
+'september' => 'September',
+'october' => 'Oktober',
+'november' => 'November',
+'december' => 'Dezember',
+'january-gen' => 'Januars',
+'february-gen' => 'Februars',
+'march-gen' => 'Märzes',
+'april-gen' => 'Aprils',
+'may-gen' => 'Mais',
+'june-gen' => 'Junis',
+'july-gen' => 'Julis',
+'august-gen' => 'Augusts',
+'september-gen' => 'Septembers',
+'october-gen' => 'Oktobers',
+'november-gen' => 'Novembers',
+'december-gen' => 'Dezembers',
+'jan' => 'Jan.',
+'feb' => 'Feb.',
+'mar' => 'Mär.',
+'apr' => 'Apr.',
+'may' => 'Mai',
+'jun' => 'Jun.',
+'jul' => 'Jul.',
+'aug' => 'Aug.',
+'sep' => 'Sep.',
+'oct' => 'Okt.',
+'nov' => 'Nov.',
+'dec' => 'Dez.',
+'january-date' => '$1. Januar',
+'february-date' => '$1. Februar',
+'march-date' => '$1. März',
+'april-date' => '$1. April',
+'may-date' => '$1. Mai',
+'june-date' => '$1. Juni',
+'july-date' => '$1. Juli',
+'august-date' => '$1. August',
+'september-date' => '$1. September',
+'october-date' => '$1. Oktober',
+'november-date' => '$1. November',
+'december-date' => '$1. Dezember',
+
+# Categories related messages
+'pagecategories' => '{{PLURAL:$1|Kategorie|Kategoriee}}',
+'category_header' => 'Seite in der Kategorie "$1"',
+'subcategories' => 'Unnerkategoriee',
+'category-media-header' => 'Medie in der Kategorie "$1"',
+'category-empty' => "''Die Kategorie enthält zurzeit ken Seite orrer Medie.''",
+'hidden-categories' => '{{PLURAL:$1|Versteckte Kategorie|Versteckte Kategoriee}}',
+'hidden-category-category' => 'Versteckte Kategoriee',
+'category-subcat-count' => '{{PLURAL:$2|Die Kategorie enthält follichende Unnerkategorie:|{{PLURAL:$1|Follichende Unnerkategorie ist en von insgesamt $2 Unnerkategorie in der Kategorie:|Es werre $1 von insgesamt $2 Unnerkategorie in der Kategorie oongezeichtt:}}}}',
+'category-subcat-count-limited' => 'Die Kategorie enthält follichende {{PLURAL:$1|Unterkategorie|$1 Unnerkategoriee}}:',
+'category-article-count' => '{{PLURAL:$2|Die Kategorie enthält follichende Seit:|{{PLURAL:$1|Follichen Seit ist en von insgesamt $2 Seite in der Kategorie:|Es werre $1 von insgesamt $2 Seite in der Kategorie oongezeicht:}}}}',
+'category-article-count-limited' => 'Follichende {{PLURAL:$1|Seite ist|$1 Seite sind}} in der Kategorie enthalt:',
+'category-file-count' => '{{PLURAL:$2|Die Kategorie enthält follichende Seit:|{{PLURAL:$1|Follichen Seit ist en von insgesamt $2 Seite in der Kategorie:|Es werre $1 von insgesamt $2 Seite in der Kategorie oongezeicht:}}}}',
+'category-file-count-limited' => 'Follichende {{PLURAL:$1|Datei ist|$1 Dateie sind}} in der Kategorie enthalt:',
+'listingcontinuesabbrev' => '(Fortsetzung)',
+'index-category' => 'Indexierte Seite',
+'noindex-category' => 'Nichtindexierte Seite',
+'broken-file-category' => 'Seite mit defekte Dateilinks',
+
+'about' => 'Üwer',
+'article' => 'Seit',
+'newwindow' => '(weard in enem neie Fenster geöffnet)',
+'cancel' => 'Abbreche',
+'moredotdotdot' => 'Mehr …',
+'morenotlisted' => 'Dies List ist net vollständig.',
+'mypage' => 'Eichne Seit',
+'mytalk' => 'Diskussion',
+'anontalk' => 'Diskussionsseit für der IP',
+'navigation' => 'Navegation',
+'and' => '&#32;und',
+
+# Cologne Blue skin
+'qbfind' => 'Finne',
+'qbbrowse' => 'Doorrichsuche',
+'qbedit' => 'Beoorbeite',
+'qbpageoptions' => 'Seiteoptione',
+'qbmyoptions' => 'Meine Seite',
+'faq' => 'Häifich gestellte Froche',
+'faqpage' => 'Project:FAQ',
+
+# Vector skin
+'vector-action-addsection' => 'Abschnitt hinzufüche',
+'vector-action-delete' => 'Lösche',
+'vector-action-move' => 'Verschiebe',
+'vector-action-protect' => 'Schütz',
+'vector-action-undelete' => 'Wiederherstelle',
+'vector-action-unprotect' => 'Seiteschutz ännre',
+'vector-view-create' => 'Erstell',
+'vector-view-edit' => 'Beoorbeite',
+'vector-view-history' => 'Versionsgeschicht',
+'vector-view-view' => 'Lese',
+'vector-view-viewsource' => 'Quelltext oonzeiche',
+'actions' => 'Aktione',
+'namespaces' => 'Noomeräume',
+'variants' => 'Variante',
+
+'navigation-heading' => 'Navigationsmenü',
+'errorpagetitle' => 'Fehler',
+'returnto' => 'Retuar zur Seit $1.',
+'tagline' => 'Aus {{SITENAME}}',
+'help' => 'Hellef',
+'search' => 'Such',
+'searchbutton' => 'Suche',
+'go' => 'Ausführe',
+'searcharticle' => 'Such',
+'history' => 'Versione',
+'history_short' => 'Versionsgeschicht',
+'updatedmarker' => 'Ännrung seit deinem letzte Besuch',
+'printableversion' => 'Druckversion',
+'permalink' => 'Permanenter Link',
+'print' => 'Drucke',
+'view' => 'Lese',
+'edit' => 'Beoorbeite',
+'create' => 'Erstell',
+'editthispage' => 'Seit beoorbeite',
+'create-this-page' => 'Seit erstelle',
+'delete' => 'Lösche',
+'deletethispage' => 'Die Seit lösche',
+'undeletethispage' => 'Die Seit wiederherstelle',
+'undelete_short' => '{{PLURAL:$1|1 Version|$1 Versione}} wiederherstelle',
+'viewdeleted_short' => '{{PLURAL:$1|Ein gelöscht Version|$1 gelöschte Versione}} ansehen',
+'protect' => 'Schütz',
+'protect_change' => 'ännre',
+'protectthispage' => 'Seit schütze',
+'unprotect' => 'Seiteschutz ännre',
+'unprotectthispage' => 'Seitschutz ännre',
+'newpage' => 'Neie Seit',
+'talkpage' => 'Die Seit diskutiere',
+'talkpagelinktext' => 'Diskussion',
+'specialpage' => 'Spezialseit',
+'personaltools' => 'Meine Werkzeiche',
+'postcomment' => 'Neier Abschnitt',
+'articlepage' => 'Inhaltsseit oonzeiche',
+'talk' => 'Diskussion',
+'views' => 'Ansichte',
+'toolbox' => 'Werkzeich',
+'userpage' => 'Benutzerseit oonzeiche',
+'projectpage' => 'Projektseit oonzeiche',
+'imagepage' => 'Dateiseit oonzeiche',
+'mediawikipage' => 'Meldungsseit oonzeiche',
+'templatepage' => 'Voarloocheseit oonzeiche',
+'viewhelppage' => 'Hellefseit oonzeiche',
+'categorypage' => 'Kategorieseit oonzeiche',
+'viewtalkpage' => 'Diskussion',
+'otherlanguages' => 'In annre Sproche',
+'redirectedfrom' => '(Weitergeleitet von $1)',
+'redirectpagesub' => 'Weiterleitung',
+'lastmodifiedat' => 'Die Seit woor zuletzt am $1 um $2 Uhr geännert.',
+'viewcount' => 'Die Seit woard bisher {{PLURAL:$1|einmal|$1 mal}} abgeruff.',
+'protectedpage' => 'Geschützte Seit',
+'jumpto' => 'Wechsle zu:',
+'jumptonavigation' => 'Navigation',
+'jumptosearch' => 'Such',
+'view-pool-error' => 'Entschuldichung, die Server sind im Moment üwerlaschtet.
+Zu viele Benutzer versuche, die Seit zu besuche.
+Bitte woort en Poor Minute, bevoar du das noomo versuchst.
+
+$1',
+'pool-timeout' => 'Zeitablauf im Verloof von das Warte uff die Sperrung',
+'pool-queuefull' => 'Poolwoortschlang ist voll',
+'pool-errorunknown' => 'Unbekannter Fehler',
+
+# All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
+'aboutsite' => 'Üwer {{SITENAME}}',
+'aboutpage' => 'Project:Üwer_{{SITENAME}}',
+'copyright' => 'Der Inhalt ist verfüchbar unner der Lizenz $1, soweit nix anner oongeb ist.',
+'copyrightpage' => '{{ns:project}}:Urheberrechte',
+'currentevents' => 'Aktuelle Ereichnisse',
+'currentevents-url' => 'Project:Aktuelle Ereichnisse',
+'disclaimers' => 'Impressum',
+'disclaimerpage' => 'Project:Impressum',
+'edithelp' => 'Beoorbeitungshellef',
+'mainpage' => 'Hauptseit',
+'mainpage-description' => 'Hauptseit',
+'policy-url' => 'Project:Richtlinie',
+'portal' => 'Gemeinschaftsportal',
+'portal-url' => 'Project:Gemeinschaftsportal',
+'privacy' => 'Dateschutz',
+'privacypage' => 'Project:Dateschutz',
+
+'badaccess' => 'Ken ausreichende Benutzerrechte',
+'badaccess-group0' => 'Du hast net die erforderliche Benutzerrechte für die Aktion.',
+'badaccess-groups' => 'Die Aktion ist uff Benutzer beschränkt, die {{PLURAL:$2|der Grupp|ener der Gruppe}} „$1“ angehören.',
+
+'versionrequired' => 'Version $1 von MediaWiki ist erforderlich.',
+'versionrequiredtext' => 'Version $1 von MediaWiki ist erforderlich und nötich, um die Seit zu nutze.
+Sieh die [[Special:Version|Version sein Seit]]',
+
+'ok' => 'Okay',
+'retrievedfrom' => 'Von „$1“',
+'youhavenewmessages' => '{{PLURAL:$3|Du host}} $1 ($2).',
+'youhavenewmessagesfromusers' => '{{PLURAL:$4|Du host}} $1 von {{PLURAL:$3|en anner Benutzer|$3 annre Benutzer}} ($2).',
+'youhavenewmessagesmanyusers' => 'Du host $1 von viele Benutzre ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|en neie Nachricht|999=neie Nachrichte}}',
+'newmessagesdifflinkplural' => 'letzte {{PLURAL:$1|Ännrung|999=Ännrunge}}',
+'youhavenewmessagesmulti' => 'Du host neie Nachrichte: $1',
+'editsection' => 'Beoorbeite',
+'editold' => 'Beoorbeite',
+'viewsourceold' => 'Quelltext oonzeiche',
+'editlink' => 'Beoorbeite',
+'viewsourcelink' => 'Quelltext oonzeiche',
+'editsectionhint' => 'Abschnitt beoorbeite: $1',
+'toc' => 'Inhaltsverzeichnis',
+'showtoc' => 'Oonzeiche',
+'hidetoc' => 'Verberriche',
+'collapsible-collapse' => 'Inklappe',
+'collapsible-expand' => 'Ausklappe',
+'thisisdeleted' => '$1 oonsiehn orrer wiederherstelle?',
+'viewdeleted' => '$1 oonzeiche?',
+'restorelink' => '$1 {{PLURAL:$1|gelöschte Version|gelöschte Versione}}',
+'feedlinks' => 'Feed (das ist en Anglizismus, für das was regäb ist, die informatione ren getun sin):',
+'feed-invalid' => 'Ungülticher Feed-Abonnement-Typ.',
+'feed-unavailable' => 'Es stehn ken Feeds zur Verfüchung.',
+'site-rss-feed' => 'RSS-Feed für "$1"',
+'site-atom-feed' => 'Atom-Feed für „$1“',
+'page-rss-feed' => 'RSS-Feed für "$1"',
+'page-atom-feed' => 'Atom-Feed für „$1“',
+'red-link-title' => '$1 (Seit existiert net)',
+'sort-descending' => 'Absteichend sortiere',
+'sort-ascending' => 'Uffsteichend sortiere',
+
+# Short words for each namespace, by default used in the namespace tab in monobook
+'nstab-main' => 'Seit',
+'nstab-user' => 'Benutzerseit',
+'nstab-media' => 'Medieseit',
+'nstab-special' => 'Spezialseit',
+'nstab-project' => 'Projektseit',
+'nstab-image' => 'Datei',
+'nstab-mediawiki' => 'Systemnachricht',
+'nstab-template' => 'Vorlooche',
+'nstab-help' => 'Hellefseit',
+'nstab-category' => 'Kategorie',
+
+# Main script and global functions
+'nosuchaction' => 'Die Aktion gebt es net',
+'nosuchactiontext' => 'Die in der URL oongebne Aktion weard von MediaWiki net unnerstützt.
+Es kann en Schreibfehler in der URL voarliehn orrer es woard en fehlerhafter Link oongeklickt.
+Das kann sich ooch um en Programmierfehler in der Software, wo von {{SITENAME}} benutzt weard, handle.',
+'nosuchspecialpage' => 'Spezialseit net voarhand',
+'nospecialpagetext' => '<strong>Die uffgerufne Spezialseit ist net voarhand.</strong>
+
+All verfüchbare Spezialseite sind in der [[Special:SpecialPages|List von der Spezialseite]] zu finne.',
+
+# General errors
+'error' => 'Fehler',
+'databaseerror' => 'Datebankfehler',
+'databaseerror-text' => 'En Datebankabfrochfehler ist passiert.
+Das könnt uff en Fehler in der Software hindeite.',
+'databaseerror-textcl' => 'Do ist en Datenbankabfrochfehler uffgetret.',
+'databaseerror-query' => 'Abfroch: $1',
+'databaseerror-function' => 'Funktion: $1',
+'databaseerror-error' => 'Fehler: $1',
+'laggedslavemode' => "'''Achtung:''' Die oongezeicht Seit könnte unner Umstände net die letzte Beoorbeitunge enthalte.",
+'readonly' => 'Datebank gesperrt',
+'enterlockreason' => 'Bitte geb en Grund ren, waroom die Datebank gesperrt werre soll und en Abschätzung üwer die Dauer von der Sperrung',
+'readonlytext' => 'Die Datebank ist voarüwergehend für Neiinträche und Ännrunge gesperrt. Bitte versuche es später nochmo.
+
+Grund für der Sperrung: $1',
+'missing-article' => 'Der Text von „$1“ $2 woor net in der Datebank gefund.
+
+Die Seit ist möchlicherweis gelöscht orrer verschob woard.
+
+Falls das net zutrifft, host du eventuell en Fehler in der Software gefund. Bitte melde das enem [[Special:ListUsers/sysop|Administrator]] unner Nennung der URL.',
+'missingarticle-rev' => '(Versionsnummer: $1)',
+'missingarticle-diff' => '(Unnerschied zwischich Versione: $1, $2)',
+'readonly_lag' => 'Die Datebank woard automatisch für Schreibzugriffe gesperrt, domit sich die verteilte Datebankserver (Slaves/Skloove) mit dem Hauptdatebankserver (Master / Meister) abgegleicht sin könne.',
+'internalerror' => 'Interner Fehler',
+'internalerror_info' => 'Interner Fehler: $1',
+'fileappenderrorread' => '„$1“ konnt im Verloof von der Hinzufüche net geles sin.',
+'fileappenderror' => 'Konnt „$1“ net an "$2" oonhänge.',
+'filecopyerror' => 'Die Datei "$1" konnt net noh "$2" kopiert sin.',
+'filerenameerror' => 'Die Datei "$1" konnt net noh "$2" umbenannt sin.',
+'filedeleteerror' => 'Die Datei "$1" konnt net gelöscht sin.',
+'directorycreateerror' => 'Das Verzeichnis "$1" konnt net oongeleht sin.',
+'filenotfound' => 'Die Datei "$1" woard net gefund.',
+'fileexistserror' => 'In die Datei "$1" konnt net geschrieb sin, weil die Datei schon voarhand ist.',
+'unexpected' => 'Unerwoorteter Weart: „$1“ = „$2“',
+'formerror' => 'Fehler: Die Igäb konnte net veroorbeitet sin.',
+'badarticleerror' => 'Die Aktion kann uff die Seit net oongewendt sin.',
+'cannotdelete' => 'Die Seit orrer Datei "$1" kann net gelöscht sin.
+Möchlicherweis woard die bereits von jemand annrem gelöscht.',
+'cannotdelete-title' => 'Seit "$1" kann net gelöscht sin',
+'delete-hook-aborted' => 'Die Löschung woard von en Programmerweitrung zu MediaWiki verhinnert.
+Das ist hierzu ken Erklärung verfüchbar.',
+'no-null-revision' => 'Die neie Nullversion für die Seit "$1" konnt net erstellt sin',
+'badtitle' => 'Ungülticher Titel',
+'badtitletext' => 'Der Titel von der oongeforderte Seit ist ungültich, leer orrer en ungülticher Sprochlink von en anne Wiki.',
+'perfcached' => 'Die follichende Date stamme aus dem Cache und sind möchlicherweis net aktuell. Maximal {{PLURAL:$1|en Ergebnis ist|$1 Ergebnisse sind}} im Cache verfüchbar.',
+'perfcachedts' => 'Die Date stamme aus dem Cache. Der Zeitpunkt von der letzte Aktualisierung: $2, $3 Uhr. Maximal {{PLURAL:$4|en Ergebnis ist|$4 Ergebnisse sind}} im Cache verfüchbar.',
+'querypage-no-updates' => 'Die Aktualisierungsfunktion von der Seit ist zurzeit deaktiviert.
+Die Date werre bis uff Weitres net erneiert.',
+'viewsource' => 'Quelltext oonzeiche',
+'viewsource-title' => 'Der Seit sein Quelltext $1',
+'actionthrottled' => 'Aktionsoonzoohl limitiert',
+'actionthrottledtext' => 'Im Rahme von en Anti-Spam-Massnoohm kann die Aktion in en koorrze Zeitabstand nuar begrenzt oft ausgeführt sin. Die Grenze host du üwerschritt.
+Bittschön versuch es in en poor Minute nochmo.',
+'protectedpagetext' => 'Die Seit woard geschützt, um Beoorbeitunge sowie annre Aktione zu verhinnre.',
+'viewsourcetext' => 'Du kannst den Quelltext von der Seit betrachte und kopiere:',
+'viewyourtext' => "Du kannst den Quelltext '''deiner Beoorbeitung''' von der Seit betrachte und kopiere:",
+'protectedinterface' => 'Dies Seit enthält Text für die Benutzerowerfläch von der Software uff dem Wiki und ist geschützt, um Missbrauch voarzubeiche.
+Nutz bittschön [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Üwersetzungen für alle Wikis hinzuzufüche orrer zu ännre.',
+'editinginterface' => "'''Warnung:''' Die Seit enthält von der MediaWiki-Software genutzte Text.
+Ännrunge uff der Seit wirreke sich uff die Benutzerowerfläch von das Wikis aus.
+Nutze bittschön [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Üwersetzunge für all Wikis hinzuzufüche orrer zu ännre.",
+'cascadeprotected' => 'Die Seit ist zur Beoorbeitung gesperrt. Sie ist in die {{PLURAL:$1|follichende Seit|follichende Seite}} ingebundt, wo mittels von der Kaskadesperroption geschützt {{PLURAL:$1|ist|sind}}:
+$2',
+'namespaceprotected' => "Du host net die erforderliche Berechtichung, um Seite im Noomeraum '''$1''' beoorbeite zu könne.",
+'customcssprotected' => 'Du host net die Berechtichung, die CSS enthaltende Seite zu beoorbeite, weil sie die persönliche Einstellunge von en anner Benutzer enthält.',
+'customjsprotected' => 'Du host net die Berechtivhung, die JavaScript enthaltende Seit zu beoorbeite, weil das sich hierbei um die persönliche Einstellunge von en anner Benutzer handelt.',
+'mycustomcssprotected' => 'Du host ken Berechtichung, die CSS-Seit zu beoorbeite.',
+'mycustomjsprotected' => 'Du host kene Berechtichung, die JavaScript-Seit zu beoorbeit.',
+'myprivateinfoprotected' => 'Du host ken Berechtichung, dein private Informatione zu beoorbeite.',
+'mypreferencesprotected' => 'Du host ken Berechtichung, dein Einstellunge zu beoorbeite.',
+'ns-specialprotected' => 'Spezialseite könne net beoorbeitet sin.',
+'titleprotected' => 'En Seit mit dem Noome kann net oongelht sin.
+Die Sperre woare doorrich [[User:$1|$1]] mit der Begründung \'\'"$2"\'\' ingericht.',
+'filereadonlyerror' => 'Die Datei "$1" kann net verännert sin, weil uff das Dateirepositorium "$2" nuar Lesezugriff möchlich ist.
+
+Der Administrator, wo den Schreibzugriff gesperrt hot, hot der follichende Grund oongäb: "$3".',
+'invalidtitle-knownnamespace' => 'Ungülticher Titel mit Noomeraum "$2" und Text "$3"',
+'invalidtitle-unknownnamespace' => 'Ungülticher Titel mit unbekannter Noomeraumnummer $1 und Text "$2"',
+'exception-nologin' => 'Net oongemeldt',
+'exception-nologin-text' => 'Du musst dich [[Special:Userlogin|oonmelde]], um uff die Seit orrer Aktion zuzugreife se könne.',
+'exception-nologin-text-manual' => 'Du musst dich $1, um uff die Seit orrer Aktion zugreif ze können.',
+
+# Virus scanner
+'virus-badscanner' => "Fehlerhafte Konfiguration: unbekannter Virenscanner: ''$1''",
+'virus-scanfailed' => 'Scan fehlgeschloohn (code $1)',
+'virus-unknownscanner' => 'Unbekannter Virescanner:',
+
+# Login and logout pages
+'logouttext' => "'''Du bist jetzt abgemeldet.'''
+
+Beacht, dass etliche Seit noch oonzeiche könne, dass du oongemeldt bist, solang du net deine Browsercache geleert host.",
+'welcomeuser' => 'Wellkomm, $1!',
+'welcomecreation-msg' => 'Dein Benutzerkonto woard erstellt.
+Vergess net, deine [[Special:Preferences|{{SITENAME}}-Einstellunge]] zu ännre.',
+'yourname' => 'Benutzername:',
+'userlogin-yourname' => 'Benutzernoome',
+'userlogin-yourname-ph' => 'Geb dein Benutzernoome ren',
+'createacct-another-username-ph' => 'Benutzernoome',
+'yourpassword' => 'Passwort:',
+'userlogin-yourpassword' => 'Passwort',
+'userlogin-yourpassword-ph' => 'Geb dein Passwort ren',
+'createacct-yourpassword-ph' => 'Geb dein Passwort ren',
+'yourpasswordagain' => 'Passwort repetiere:',
+'createacct-yourpasswordagain' => 'Passwort bestätiche',
+'createacct-yourpasswordagain-ph' => 'Geb das Passwort erneit ren',
+'remembermypassword' => 'Mit dem Browser dauerhaft oongemeldet bleiwe (maximal $1 {{PLURAL:$1|Tooch|Tooche}})',
+'userlogin-remembermypassword' => 'Oongemeldt bleiwe',
+'userlogin-signwithsecure' => 'Sichre Verbinnung verwenne',
+'yourdomainname' => 'Dein Domain:',
+'password-change-forbidden' => 'Du kannst uff dem Wiki ken Passwörter ännre.',
+'externaldberror' => 'Entweder es lieht en Fehler bei der externe Authentifizierung voar orrer du därrefst dein externes Benutzerkonto net aktualisiere.',
+'login' => 'Oonmelde',
+'nav-login-createaccount' => 'Oonmelde / Benutzerkonto erstelle',
+'loginprompt' => 'Zur Oonmeldung müsse Cookies aktiviert sin.',
+'userlogin' => 'Oonmelde / Benutzerkonto erstelle',
+'userloginnocreate' => 'Oonmelde',
+'logout' => 'Abmelde',
+'userlogout' => 'Abmelde',
+'notloggedin' => 'Nicht oongemeldt',
+'userlogin-noaccount' => 'Du host noch ken Benutzerkonto?',
+'userlogin-joinproject' => '{{SITENAME}} beitrete',
+'nologin' => "Du host ken Benutzerkonto? '''$1'''.",
+'nologinlink' => 'En neie Benutzerkonto erstelle',
+'createaccount' => 'Benutzerkonto erstelle',
+'gotaccount' => "Du host schon en Benutzerkonto? '''$1'''.",
+'gotaccountlink' => 'Oonmelde',
+'userlogin-resetlink' => 'Die Oonmelddate vergess?',
+'userlogin-resetpassword-link' => 'Passwort vergesse?',
+'userlogin-helplink2' => 'Hellef bei der Oonmeldung',
+'userlogin-loggedin' => 'Du bist schon als {{GENDER:$1|$1}} oongemeldt.
+Benutz das unne stehnd Formular, um dich unner enem annren Benutzername oonzumelde.',
+'userlogin-createanother' => 'En weitres Benutzerkonto erstelle',
+'createacct-join' => 'Geb do unne deine Informatione ren.',
+'createacct-another-join' => 'Geb do unne die Informationen von der neie Benutzerkonto ren.',
+'createacct-emailrequired' => 'E-Mail-Adress',
+'createacct-emailoptional' => 'E-Mail-Adress (optional)',
+'createacct-email-ph' => 'Geb dein E-Mail-Adress ren',
+'createacct-another-email-ph' => 'E-Mail-Adress',
+'createaccountmail' => 'En temporäres Zufallspasswort verwenne und an die oongebne E-Mail-Adress verschicke',
+'createacct-realname' => 'Registrierte Noome (optional)',
+'createaccountreason' => 'Grund:',
+'createacct-reason' => 'Begründung',
+'createacct-reason-ph' => 'Waroom erstellst du en annres Benutzerkonto?',
+'createacct-captcha' => 'Sicherheitsprüfung',
+'createacct-imgcaptcha-ph' => 'Geb den Text ren, den wo du uwe siehst.',
+'createacct-submit' => 'Dein Benutzerkonto erstelle',
+'createacct-another-submit' => 'En anner Benutzerkonto erstelle',
+'createacct-benefit-heading' => '{{SITENAME}} weard von Mensche wie dir geschaff.',
+'createacct-benefit-body1' => '{{PLURAL:$1|Bearbeitung|Bearbeitunge}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|Seit|Seite}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|aktiver Autor|aktive Autore}}',
+'badretype' => 'Die beide Passwörter stimme net gleichoortich.',
+'userexists' => 'Der Benutzernoome ist schon vergeb.
+Bittschön wähl en annre.',
+'loginerror' => 'Fehler bei der Oonmeldung',
+'createacct-error' => 'Fehler beim Erstelle von der Benutzerkonto',
+'createaccounterror' => 'Benutzerkonto konnte net erstellt sin: $1',
+'nocookiesnew' => 'Der Benutzerzugang woard erstellt, awer du bist net oongemeldt. {{SITENAME}} benöticht für die Funktion Cookies, bitte aktivier die und meld dich dann mit deinem neie Benutzernoome und dem zugehöriche Passwort an.',
+'nocookieslogin' => '{{SITENAME}} benutzt Cookies zur Oonmeldung von der Benutzer. Du host Cookies deaktiviert, bitte aktivier se und versuch das noohmo.',
+'nocookiesfornew' => 'Das Benutzerkonto woard net erstellt, weil die Dateherkunft net ermittelt sin konnt.
+Das muss sichergestellt sin, dass Cookies aktiviert sind. Donoh die Seit erneut loode und es wieder versuche.',
+'noname' => 'Du musst en gültiche Benutzernoome oongewe.',
+'loginsuccesstitle' => 'Oonmeldung erfollichgreich',
+'loginsuccess' => 'Du bist jetzt als "$1" bei {{SITENAME}} oongemeldt.',
+'nosuchuser' => 'Der Benutzernoome „$1“ existiert net.
+Üwerprüf die Schreibweis (Gross-/Klenschreibung beachte) orrer [[Special:UserLogin/signup|meld dich als neier Benutzer an]].',
+'nosuchusershort' => 'Der Benutzernoome "$1" ist net voarhand. Bitte üwerprüf die Schreibweis.',
+'nouserspecified' => 'Bittschön geb en Benutzernoome an.',
+'login-userblocked' => '{{GENDER:$1|Der Benutzer|Die Benutzrin|Der Benutzer}} ist gesperrt. Die Oonmeldung ist net erlaubt.',
+'wrongpassword' => 'Das Passwort ist falsch. Bittschön versuch das erneit.',
+'wrongpasswordempty' => 'Do woard ken Passwort regeb. Bittschön versuch das erneit.',
+'passwordtooshort' => 'Passwörter müsse minnestens {{PLURAL:$1|1 Zeiche|$1 Zeiche}} lang sin.',
+'password-name-match' => 'Dein Passwort muss sich von deinem Benutzernoome unnerscheide.',
+'password-login-forbidden' => 'Die Verwennung von der Benutzernoome und das Passwort ist net erlaubt.',
+'mailmypassword' => 'Passwort zurücksetze',
+'passwordremindertitle' => 'Neies Passwort für en {{SITENAME}}-Benutzerkonto',
+'passwordremindertext' => 'Jemand mit der IP-Adress $1, wahrscheinlich du sellebst, hot en neies Passwort für die Oonmeldung bei {{SITENAME}} ($4) oongefordert.
+
+Das automatisch generierte Passwort für Benutzer "$2" lautet jetzt: $3
+
+Falls du das wirklich gewünscht host, sollst du dich jetzt oonmelde und das Passwort ännre.
+Das neie Passwort ist {{PLURAL:$5|1 Tooch|$5 Tooch}} gültich.
+
+Bittschön ignorier die E-Mail, falls du se net sellebst oongefordert host. Das alte Passwort bleibt weiterhin gültich.',
+'noemail' => '{{GENDER:$1|Benutzer|Benutzrin|Benutzer}} "$1" hot ken E-Mail-Adress angegeben.',
+'noemailcreate' => 'Du musst en gültiche E-Mail-Adress oongewe',
+'passwordsent' => 'En neies, temporäres Passwort woard an die E-Mail-Adress von Benutzer "$1" geschickt.
+Bittschön meld dich domit an, sobald du es krieht host. Das alte Passwort bleibt weiterhin gültich.',
+'blocked-mailpassword' => 'Die von dir verwennte IP-Adress ist für das Ännre von Seite gesperrt. Um en Missbrauch zu verhinnre, woard die Möchlichkeit zu der Oonfordrung von en neie Passworte ewenfalls ooch gesperrt.',
+'eauthentsent' => 'En Bestätichungs-E-Mail woard an die oongebne Adress verschickt.
+
+Bevoar en E-Mail von annre Benutzer üwer die E-Mail-Funktion empfang sin kann, muss die Adress und ehre tatsächliche Zugehörigkeit zu dem Benutzerkonto earscht bestäticht sin. Bittschön befolliche die Hinweis in der Bestätichungs-E-Mail.',
+'throttled-mailpassword' => 'Do woard innerhalb von der letzte {{PLURAL:$1|Stund|$1 Stunde}} schon en Passwortzurücksetzung-E-Mail oongefordert. Um en Missbrauch von der Funktion zu verhinnre, kann nuar {{PLURAL:$1|emol in jede Stund|alle $1 Stunde}} en Passwortzurücksetzung-E-Mail oongefordert sin.',
+'mailerror' => 'Fehler beim Sende von der E-Mail: $1',
+'acct_creation_throttle_hit' => 'Besucher von das Wiki, wo dein IP-Adress verwenne, honn innerhalleb von der letzte Tooche {{PLURAL:$1|1 Benutzerkonto|$1 Benutzerkonte}} erstellt, was die maximal erlaubte Oonzoohl in die Zeitperiode ist.
+
+Besucher, wo die IP-Adress verwenne, könne momentan ken Benutzerkonte mehr erstelle.',
+'emailauthenticated' => 'Dein E-Mail-Adress woard am $2 um $3 Uhr bestäticht.',
+'emailnotauthenticated' => 'Dein E-Mail-Adress ist noch net bestäticht.
+Die follichende E-Mail-Funktione stehn earst noh erfollichreicher Bestätichung zur Verfüchung.',
+'noemailprefs' => 'Geb en E-Mail-Adress in den Instellunge an, damit die nhfollichende Funktione zur Verfüchung stehn.',
+'emailconfirmlink' => 'E-Mail-Adress konfirmiere und bestätiche (authentifiziere).',
+'invalidemailaddress' => 'Die E-Mail-Adress weard net akzeptiert, weil die en ungültiches Format (eventuell ungültiche Zeiche) scheint zu honn. Bittschön geb en korrekte Adress ren orrer leer das Feld.',
+'cannotchangeemail' => 'E-Mail-Adresse könne in dem Wiki net geändert sin.',
+'emaildisabled' => 'Üwer die Website könne ken E-Mails versandt werre.',
+'accountcreated' => 'Benutzerkonto erstellt',
+'accountcreatedtext' => 'Das Benutzerkonto für [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|Diskussion]]) woard mit Erfolch ingerichtet.',
+'createaccount-title' => 'Erstellung von en Benutzerkonto für {{SITENAME}}',
+'createaccount-text' => 'Do woard für dich en Benutzerkonto "$2" uff {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für "$2" ist "$3". Du sollst dich jetzt oonmelde und das Passwort ännre.
+
+Falls das Benutzerkonto irrtümlich oongeleht woard, kannst du die Nachricht ignoriere.',
+'usernamehasherror' => 'Benutzernoome deerfe ken Rautzeiche enthalte',
+'login-throttled' => 'Du host keerzlich zu viele Oonmeldversuche unnernomm.
+Bittachön woort $1, bevoar du das erneit versuchst.',
+'login-abort-generic' => 'Dein Oonmeldung woor net erfollichreich – Abgebroch',
+'loginlanguagelabel' => 'Sproch: $1',
+'suspicious-userlogout' => 'Dein Abmeldeoonfroch woard verweichert, weil die vermutlich von en defekte Browser orrer en Cache-Proxy gesendt woard.',
+'createacct-another-realname-tip' => 'Der bürcherliche registriert Noome ist optional.
+Wenn du ihn oongebst, weard ear für die Zuordnung von der Beiträche verwendt.',
+'pt-login' => 'Oonmelde',
+'pt-login-button' => 'Oonmelde',
+'pt-createaccount' => 'Benutzerkonto erstelle',
+'pt-userlogout' => 'Abmelde',
+
+# Email sending
+'php-mail-error-unknown' => 'Unbekannter Fehler mit der Funktion mail() von PHP',
+'user-mail-no-addy' => 'Versuchte, en E-Mail ohne Oongäb von en E-Mail-Adress zu versende.',
+'user-mail-no-body' => 'Do woard versucht, en E-Mail mit en leere orrer zu koorze Textkörper zu versende.',
+
+# Change password dialog
+'changepassword' => 'Passwort ännre',
+'resetpass_announce' => 'Um die Oonmeldung abzuschliesse, musst du en neies Passwort festlehn.',
+'resetpass_header' => 'Passwort ännre',
+'oldpassword' => 'Altes Passwort:',
+'newpassword' => 'Neies Passwort:',
+'retypenew' => 'Passwort repetiere:',
+'resetpass_submit' => 'Passwort üwermittle und oonmelde',
+'changepassword-success' => 'Dein Passwort woard erfollichreich geännert!',
+'changepassword-throttled' => 'Du host keerzlich zu viele Oonmeldversuche unnernomm.
+Bittachön woort $1, bevoar du das erneit versuchst.',
+'resetpass_forbidden' => 'Das Passwort kann net geännert werre.',
+'resetpass-no-info' => 'Du musst dich oonmelde, um uff die Seit direkt zuzugreife.',
+'resetpass-submit-loggedin' => 'Passwort ännre',
+'resetpass-submit-cancel' => 'Abbreche',
+'resetpass-wrong-oldpass' => 'Ungültiches temporäres orrer aktuelles Passwort.
+Möchlicherweis host du dein Passwort schon erfollichreich geännert orrer en neies temporäres Passwort beantroocht.',
+'resetpass-recycled' => 'Bittschön setz dein Passwort uff en annres Passwort als dein aktuelles wos do jetzt host.',
+'resetpass-temp-emailed' => 'Du host dich mit em temporäre E-Mail-Code oongemeldt.
+Um die Oonmeldung abzuschliesse, musst du jetzt en neies Passwort festlehn:',
+'resetpass-temp-password' => 'Temporäres Passwort:',
+'resetpass-abort-generic' => 'Die Passwortännrung woard doorrich en Erweitrung abgebroch.',
+'resetpass-expired' => 'Dein Passwort ist abgeloof. Bittschön leh en neies Passwort zur Oonmeldung fest.',
+'resetpass-expired-soft' => 'Dein Passwort ist abgeloof und muss zurückgesetzt sin. Bittschön wähl jetzt en neies Passwort aus orrer klick uff "{{int:resetpass-submit-cancel}}", um das später zurückzusetze.',
+'resetpass-validity-soft' => 'Dein Passwort ist net gültich: $1
+
+Bittschön wähl jetzt en neies Passwort orrer klick uff „{{int:resetpass-submit-cancel}}“, um das später zurückzusetze.',
+
+# Special:PasswordReset
+'passwordreset' => 'Passwort zurücksetze',
+'passwordreset-text-one' => 'Füll das Formular aus, um den Passwort zurückzusetze.',
+'passwordreset-text-many' => '{{PLURAL:$1|Füll en von der Felder aus, um en temporäres Passwort por E-Mail zugesandt zu bekomme.}}',
+'passwordreset-legend' => 'Passwort zurücksetze',
+'passwordreset-disabled' => 'Das Zurücksetze von Passwörter woard in dem Wiki deaktiviert.',
+'passwordreset-emaildisabled' => 'Die E-Mail-Funktione worre uff dem Wiki deaktiviert.',
+'passwordreset-username' => 'Benutzernoome:',
+'passwordreset-domain' => 'Domain:',
+'passwordreset-capture' => 'Die E-Mail-Nachricht oonsiehn?',
+'passwordreset-capture-help' => 'Wenn du das Kästche oonkreizt, weard die E-Mail-Nachricht mit dem temporäre Passwort sowohl dir oongezeicht als ooch dem Benutzer zugesandt.',
+'passwordreset-email' => 'E-Mail-Adress',
+'passwordreset-emailtitle' => 'Benutzerkontoinformatione uff {{SITENAME}}',
+'passwordreset-emailtext-ip' => 'Jemand mit der IP-Adress $1, wahrscheinlich du sellebst, hot en Zurücksetzung von dein Passworts bei {{SITENAME}} oongefordert ($4). {{PLURAL:$3|Das follichend Benutzerkonto ist|Die follichende Benutzerkonte sind}}
+mit der E-Mail-Adress verknüpft:
+
+$2
+
+{{PLURAL:$3|Das temporär Passwort looft|Die temporäre Passwörter loofe}} innerhalb von {{PLURAL:$5|em Tooch|$5 Tooche}} ab.
+Du sollst dich oonmelde und en neies Passwort vergewe. Falls jemand annres die Oonfroch getätigt hot orrer du dich wieder an dein ursprüngliches Passwort erinnre kannst und das netmeh
+ännre möchst, kannst du die Nachricht ignoriere und weiterhin dein altes
+Passwort benutze.',
+'passwordreset-emailtext-user' => 'Benutzer $1 bei {{SITENAME}} hot en Zurücksetzung von dein Passwort bei {{SITENAME}} oongefordert ($4). {{PLURAL:$3|Das follichend Benutzerkonto ist|Die follichend Benutzerkonte sind}} mit der E-Mail-Adress verknüpft:
+
+$2
+
+{{PLURAL:$3|Das temporär Passwort looft|Die temporäre Passwörter loofe}} innerhalb von {{PLURAL:$5|em Tooch|$5 Tooche}} ab. Du sollst dich oonmelde und en neies Passwort vergewe. Falls jemand annres die Oonfroch getäticht hot orrer du dich wieder an den ursprüngliches Passwort erinnre kannst und das net ännre möchst, kannst du die Nachricht ignoriere und weiterhin dein altes Passwort benutze.',
+'passwordreset-emailelement' => 'Benutzernoome: $1
+Temporäres Passwort: $2',
+'passwordreset-emailsent' => 'En Passwortzurücksetzung-E-Mail woard versandt.',
+'passwordreset-emailsent-capture' => 'En Passwortzurücksetzung-E-Mail woard versandt, die unne oongezeicht weard.',
+'passwordreset-emailerror-capture' => 'Die unne oongezeichte Passwortzurücksetzungs-E-Mail woard generiert, awer der Versand an {{GENDER:$2|den Benutzer|die Benutzrin}} ist gescheitert: $1',
+
+# Special:ChangeEmail
+'changeemail' => 'E-Mail-Adress ännre',
+'changeemail-header' => 'E-Mail-Adress ännre',
+'changeemail-text' => 'Füll das Formular vollständig aus, um dein E-Mail-Adress zu ännre. Du musst dein Passwort oongewe, um die Ännrung zu bestätiche.',
+'changeemail-no-info' => 'Du musst dich oonmelde, um uff die Seit direkt zuzugreife.',
+'changeemail-oldemail' => 'Aktuell E-Mail-Adress:',
+'changeemail-newemail' => 'Neie E-Mail-Adress:',
+'changeemail-none' => '(ken)',
+'changeemail-password' => 'Dein {{SITENAME}}-Passwort:',
+'changeemail-submit' => 'E-Mail-Adress ännre',
+'changeemail-cancel' => 'Abbreche',
+'changeemail-throttled' => 'Du host keerzlich zu viele Oonmeldversuche unnernomm.
+Bittachön woort $1, bevoar du das erneit versuchst.',
+
+# Special:ResetTokens
+'resettokens' => 'Tokens zurücksetze',
+'resettokens-text' => 'Du kannst Tokens zurücksetze, wo dir den Zugriff uff bestimmte private Date ermöchliche, wo mit deinem Benutzerkonto hier verknüpft sind.
+
+Du sollst das nuar mache, wenn du verguckt die Tokens versiehntlich mit jemandem geteilt host orrer dein Konto gefährdet ist.',
+'resettokens-no-tokens' => 'Do gebts ken Tokens zum Zurücksetze.',
+'resettokens-legend' => 'Tokens zurücksetze',
+'resettokens-tokens' => 'Tokens:',
+'resettokens-token-label' => '$1 (aktueller Weart: $2)',
+'resettokens-watchlist-token' => 'Token für den Webfeed (Atom/RSS) von der [[Special:Watchlist|Ännrunge an Seite uff deiner Beobachtungslist]]',
+'resettokens-done' => 'Tokens zurückgesetzt.',
+'resettokens-resetbutton' => 'Ausgewählte Token ännre',
+
+# Edit page toolbar
+'bold_sample' => 'Fetter Text',
+'bold_tip' => 'Fetter Text',
+'italic_sample' => 'Kursiver Text',
+'italic_tip' => 'Kursiver Text',
+'link_sample' => 'Link-Text',
+'link_tip' => 'Interner Link',
+'extlink_sample' => 'http://www.example.com Link-Text',
+'extlink_tip' => 'Externer Link (http:// beachte)',
+'headline_sample' => 'Ebene-2-Üwerschrift',
+'headline_tip' => 'Ebene-2-Üwerschrift',
+'nowiki_sample' => 'Unformatierte Text hie renfüche',
+'nowiki_tip' => 'Unformatierter Text',
+'image_tip' => 'Dateilink',
+'media_tip' => 'Mediedatei-Link',
+'sig_tip' => 'Dein Signatur mit Zeitstempel',
+'hr_tip' => 'Horizontoole Linie (spoorsam verwenne)',
+
+# Edit pages
+'summary' => 'Zusammerfassung:',
+'subject' => 'Betreff:',
+'minoredit' => 'Nuar Klenichkeite woore verännert',
+'watchthis' => 'Die Seit beobachte',
+'savearticle' => 'Seit speichre',
+'preview' => 'Voarschau',
+'showpreview' => 'Vorschau zeiche',
+'showlivepreview' => 'Sofortiche Voarschau',
+'showdiff' => 'Ändrunge zeiche',
+'anoneditwarning' => "Du beoorbeitest die Seit unoongemeldet. Wenn du sie abspeichre tust, weard dein aktuelle Komputador IP-Adress in der Versionsgeschicht uffgezeichnet und ist domit unwiderruflich und kann '''öffentlich''' gesiehn sind.",
+'anonpreviewwarning' => "''Du bist net oongemeldet. Beim Speichre weard dein IP-Adress in der Versionsgeschicht uffgezeichnet.''",
+'missingsummary' => "'''Hinweis:''' Du host ken Zusammerfassung oongeb. Wenn du erneit uff \"{{int:savearticle}}\" klicke tust, weard dein Ännrung ohne Zusammerfassung üwernomm.",
+'missingcommenttext' => 'Dein Abschnitt enthält ken Text.',
+'missingcommentheader' => "'''Achtung:''' Du host ken Betreff/Üwerschrift ingeb. Wenn du erneit uff \"{{int:savearticle}}\" klicke tust, weard dein Beoorbeitung ohne Üwerschrift gespeichert.",
+'summary-preview' => 'Voarschau von der Zusammerfassungszeil:',
+'subject-preview' => 'Voarschau von der Zusammerfassungszeil:',
+'blockedtitle' => 'Benutzer ist gesperrt',
+'blockedtext' => '\'\'\'Dein Benutzernoome orrer dein IP-Adress woard gesperrt.\'\'\'
+
+Die Sperrung woard vom Administrator $1 doorrichgeführt.
+Als Grund woard \'\'$2\'\' oongeb.
+
+* Die Sperr ehr Beginn: $8
+* Die Sperr ehr End: $6
+* Die Sperr ehr betrifft: $7
+
+Du kannst $1 orrer en von der annre [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktiere, um üwer die Sperr zu diskutiere.
+Du kannst die "E-Mail an den Benutzer"-Funktion net nutze, solang ken gültige E-Mail-Adress in dein [[Special:Preferences|Benutzerkonto-Einstellunge]] ingetroohn ist orrer die Funktion für dich gesperrt woard.
+Dein aktuell IP-Adresse ist $3 und die Sperrkennung lautet $5.
+Bittschön füch alle Informatione jeder Oonfroche hinzu, wo du stellst.',
+'autoblockedtext' => 'Dein IP-Adress woard automatisch gesperrt, wiel die von em annre Benutzer genutzt woard, wo von $1 gesperrt woard.
+Als Grund wurde angegeben:
+
+:\'\'$2\'\'
+
+* Die Sperr ehr Beginn: $8
+* Die Sperr ehr End: $6
+* Die Sperr betrifft: $7
+
+Du kannst $1 orrer en von der annre [[{{MediaWiki:Grouppage-sysop}}|Administratore]] kontaktiere, um üwer die Sperr zu diskutiere.
+
+Du kannst die "E-Mail an den Benutzer"-Funktion net nutze, solang ken gültiche E-Mail-Adress in dein [[Special:Preferences|Benutzerkonto-Einstellunge]] ingetrooht ist orrer die Funktion für dich gesperrt woard.
+
+Dein aktuell IP-Adress ist $3, und die Sperr-ID ist $5.
+Bittschön füch alle Informatione von jeder Oonfroch hinzu, wo du stelle tust.',
+'blockednoreason' => 'ken Begründung oongeb',
+'whitelistedittext' => 'Du musst dich $1, um Seite beoorbeite zu könne.',
+'confirmedittext' => 'Du musst dein E-Mail-Adress earscht bestätiche, bevoar du Beoorbeitunge doorrichführe kannst. Bittschön ergänz und bestätich dein E-Mail in den [[Special:Preferences|Einstellunge]].',
+'nosuchsectiontitle' => 'Abschnitt net gefund',
+'nosuchsectiontext' => 'Du host versucht, en Abschnitt zu beoorbeite, wo net existiert.
+Vermutlich woard er verschub orrer gelöscht, nohdem du die Seit uffgeruf host.',
+'loginreqtitle' => 'Oonmeldung erforderlich',
+'loginreqlink' => 'Oonmelde',
+'loginreqpagetext' => 'Du musst dich $1, um Seite lese könne.',
+'accmailtitle' => 'Passwort woard verschickt',
+'accmailtext' => "En zufällich generiertes Passwort für [[User talk:$1|$1]] woard an $2 versandt. Es kann uff der Seit ''[[Special:ChangePassword|Passwort ännre]]'' noh der Oonmeldung geännert sin.",
+'newarticle' => '(Nei)',
+'newarticletext' => "Du bist en Link zu en Seit noh gang, wo net voarhand ist.
+Um die Seit oonzulehn, trooh dein Text in das unnestehend Beoorbeitungsfeld ren (weitre Informatione uff der [$1 Hellefseit]).
+Soweit du fälschlicherweise hier bist, klick uff dein Browser sein Schaltfläch '''Retuar'''.",
+'anontalkpagetext' => "----''Dies Seit dient dozu, enem net oongemeldete Benutzer Nachrichte zu hinnerlosse. Es weard sein IP-Adress zur Identifizierung verwenndt. IP-Adresse könne von mehrere Benutzer gemeinsam verwendt sin. Wenn du mit den Kommentare uff der Seit nix oonfänge kannst, richte die sich vermutlich an en frühre Inhaber von deiner IP-Adresse und du kannst se ignoriere. Du kannst dir ooch en [[Special:UserLogin/signup|Benutzerkonto erstelle]] orrer dich [[Special:UserLogin|oonmelde]], um künftich Verwechslunge mit annre anonyme Benutzer zu vermeide.''",
+'noarticletext' => 'Die Seit dohie enthält momentan noch ken Text.
+Du kannst sie <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} beoorbeite]</span>,
+ehre Titel uff annre Seite [[Special:Search/{{PAGENAME}}|suche]]
+orrer die zugehöriche <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachte]</span>.',
+'noarticletext-nopermission' => 'Die Seit dohie enthält momentan noch ken Text.
+Du kannst sie <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} beoorbeite]</span>,
+ehre Titel uff annre Seite [[Special:Search/{{PAGENAME}}|suche]]
+orrer die zugehöriche <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachte]</span>.',
+'missing-revision' => 'Die Version $1 von der Seit mit der noomen "{{FULLPAGENAME}}" ist net voarhand.
+
+Der Fehler weard normalerweis von enem veraltete Link zur Versionsgeschicht von en Seit verursacht, wo zwischichzeitlich gelöscht woard.
+Enzelheite sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch] einsehbar (visibel).',
+'userpage-userdoesnotexist' => 'Das Benutzerkonto „<nowiki>$1</nowiki>“ ist net voarhand. Bittschön prüf, ob du die Seit werklich erstelle/beoorbeite willst.',
+'userpage-userdoesnotexist-view' => 'Das Benutzerkonto "$1" ist net voarhand.',
+'blocked-notice-logextract' => '{{GENDER:$1|Der Benutzer|Die Benutzrin|Der Benutzer}} ist zurzeit gesperrt.
+Zur Information follicht en aktueller Auszuch aus dem Benutzersperr-Logbuch:',
+'clearyourcache' => "'''Hinweis:''' Leer nh dem Speichre den Browser-Cache, so das du die Ännrunge für se siehn kriehst.
+* '''Firefox/Safari:''' ''Umschalttast'' drücke und gleichzeitich ''Aktualisiere'' oonklicke orrer entweder ''Strg+F5'' orrer ''Strg+R'' (''⌘+R'' uff dem Mac) drücke
+* '''Google Chrome:''' ''Umschalttast+Strg+R'' (''⌘+Umschalttast+R'' uff dem Mac) drücke
+* '''Internet Explorer:''' ''Strg+F5'' drücke orrer ''Strg'' drücke und gleichzeitich ''Aktualisiere'' oonklicke
+* '''Opera:''' ''Extras → Internetspure lösche … → Individuelle Auswahl → Den komplette Cache lösche''",
+'usercssyoucanpreview' => "'''Hinweis:''' Benutz den „{{int:showpreview}}“-Knopp, um dein neies CSS voar dem Speichre zu testiere.",
+'userjsyoucanpreview' => "'''Hinweis:''' Benutz den „{{int:showpreview}}“-Knopp, um dein neies JavaScript voar dem Speichre zu testiere.",
+'usercsspreview' => "'''Beacht, dass du nur en Voarschau von dein Benutzer-CSS betrachte tust.'''
+'''Das woor noch net gespeichert!'''",
+'userjspreview' => "'''Beacht, dass du nuar en Voarschau von dein Benutzer-JavaScripts betrachte tust.'''
+'''Das woor noch net gespeichert!'''",
+'sitecsspreview' => "'''Beachte, dass du nuar en Voarschau von das CSS betrachte tust.'''
+'''Das woard noch net gespeichert!'''",
+'sitejspreview' => "'''Beacht, dass du nuar en Vorschau von das JavaScript betrachte tust.'''
+'''Das woor noch net gespeichert!'''",
+'userinvalidcssjstitle' => "'''Achtung:''' Die Benutzerowerfläch \"\$1\" existiert net. Bedenke, dass benutzerspezifisch .css- und .js-Seite mit em Klenbuchstoob oonfänge müsse, also beispielsweis ''{{ns:user}}:Mustermann/vector.css'' an Stell von ''{{ns:user}}:Mustermann/Vector.css''.",
+'updated' => '(Geännert)',
+'note' => "'''Hinweis:'''",
+'previewnote' => "'''Dies ist nuar en Voarschau.'''
+Die Seit woard noch net gespeichert!",
+'continue-editing' => 'Zum Beoorbeitungsfeld gehn',
+'previewconflict' => 'Die Voarschau gebt den Inhalt von das Textfeld uwe, wieder. So weard die Seit aussiehn, wenn du jetzt speicherst.',
+'session_fail_preview' => "'''Dein Bearbeitung konnt net gespeichert sin, weil Setzungsdate verloar gan sind.
+Bittschön versuch das erneit, indem du unner der follichende Textvoarschau noomo uff \"Seit speichre\" klicke tust.
+Sollt das Problem bestehn bleiwe, [[Special:UserLogout|meld dich ab]] und donoh wieder an.'''",
+'session_fail_preview_html' => "'''Dein Beoorbeitung konnt net gespeichert sin, weil Sitzungsdate verloar gang sind.'''
+
+''Weil in {{SITENAME}} das Speichre von reinem HTML aktiviert ist, woard die Voarschau ausgeblendet, um JavaScript-Attacke voarzubeiche.''
+
+'''Bittschön versuch das erneit, indem du unner der follichende Textvoarschau nohmo uff \"Seit speichre\" klicke tust.
+Sollt das Problem bestehn bleiwe, [[Special:UserLogout|meld dich ab]] und donoh wieder an.'''",
+'token_suffix_mismatch' => "'''Dein Beoorbeitung woard zurückgewies, do dein Browser Zeiche im Beoorbeite-Token verstümmelt hot.
+En Speichrung kann den Seiteinhalt zerstöre. Das geschieht bisweil doorrich die Benutzung von en anonyme Proxy-Dienst, wo fehlerhaft oorbeitet.'''",
+'edit_form_incomplete' => "'''Der Inhalt von das Beoorbeitungsformular hot den Server net vollständich erreicht. Bittschön prüf deine Bearbeitunge uff Vollständigkeit und versuch das erneit.'''",
+'editing' => 'Beoorbeite von „$1“',
+'creating' => 'Erstelle von „$1“',
+'editingsection' => 'Beoorbeite von „$1“ (Abschnitt)',
+'editingcomment' => 'Beoorbeite von "$1" (Abschnitt)',
+'editconflict' => 'Beoorbeitungskonflikt: $1',
+'explainconflict' => "Jemand anners hot die Seit geännert, nohdem du oongefäng host, sie zu beoorbeite.
+Das Textfeld do uwe enthält den aktuell Beoorbeitungsstand von der Seit.
+Das unnre Textfeld enthält dein Ändrunge.
+Bittschön füch dein Ändrungen in das Textfeld do uwe ren.
+'''Nuar''' der Inhalt von dem Textfeld do uwe weard gespeichert, wenn du uff „{{int:savearticle}}“ klicke tust.",
+'yourtext' => 'Dein Text',
+'storedversion' => 'Gespeicherte Version',
+'nonunicodebrowser' => "'''Achtung: Dein Browser kann Unicode-Zeiche net richtich veroorbeite.''' Es weard en Hellefsroutin rengesetzt, um dich zu erlaube, Seite sicher zu beoorbeite: Nicht-ASCII-Zeiche werre dabei im Beoorbeitungsfenster als hexadezimale Codes oongezeicht.",
+'editingold' => "'''Achtung: Du beoorbeitest en alte Version von der Seit. Sofern du sie speicherst, werre all neiere Versionen üwerschrieb.'''",
+'yourdiff' => 'Unnerschiede',
+'copyrightwarning' => "'''Bittschön kopier ken Webseite, die net dein eichne sind, benutz ken urheberrechtlich geschützte Werke ohne Erlaubnis von dem Urheber!'''<br />
+Du gebst uns hiermit dein Zusooch und Versprechung, dass du den Text '''sellebst verfasst''' host, dass der Text Allgemeingut '''(domínio público / public domain)''' ist, orrer dass der '''Urheber''' seine '''Zustimmung''' geb hot. Falls der Text schon woanners veröffentlicht woard, weis bittschön uff der Diskussionsseit druf hin.
+<i>Bittschön beachte, dass alle {{SITENAME}}-Beiträche automatisch unner der \"\$2\" stehn (sieh \$1 für Einzelheite). Falls du net möchst, dass dein Oorweit hier von anre verännert und verbreitet weard, dann klick net uff \"Seite speichre\".</i>",
+'copyrightwarning2' => "Bittschön beacht, dass all Beiträch zu {{SITENAME}} von annre Mitwerrekend beoorbeitet, geännert orrer gelöscht werre könne.
+Reich hie ken Texte ren, falls du net willst, dass die ohne Einschränkung geännert sin könne.
+
+Du bestätichst hiermit ooch, dass du die Texte sellebst geschrieb host orrer die von en gemeinfreie Quell kopiert host
+(weitre Einzelheite unner $1). '''ÜWERTRÄH OHNE GENEHMICHUNG KEN URHEBERRECHTLICH GESCHÜTZTE INHALTE!'''",
+'longpageerror' => "'''Fehler: Der Text, wo du speichre versucht host, ist {{PLURAL:$1|en Kilobyte|$1 Kilobyte}} gross. Das ist grösser als das erlaubte Maximum von {{PLURAL:$2|en Kilobyte|$2 Kilobyte}}.'''
+Der kann net gespeichert sin.",
+'readonlywarning' => "'''Achtung: Die Datebank woard für Woortungsoorbeite gesperrt, so dass dein Ännrunge derzeit könne net gespeichert sin.
+Sichre den Text bittschön lokal uff deim Komputadoar und versuch zu en spätre Zeitpunkt, die Ännrunge zu üwertroon.'''
+
+Grund für die Sperre: $1",
+'protectedpagewarning' => "'''Achtung: Die Seit woard geschützt. Nuar Benutzer mit Administratoarrechte könne die Seit beoorbeite.'''
+Zu der Information follicht der aktuell Logbuchintrooch:",
+'semiprotectedpagewarning' => "'''Halbsperrung:''' Die Seit woard so geschützt, dass nuar registrierte Benutzer die ännre könne.
+Zu der Information follicht der aktuelle Logbuchintrooch:",
+'cascadeprotectedwarning' => "'''Achtung:''' Die Seit woard so geschützt, dass die norre doorrich Benutzer mit Administratoarrechte beoorbeitet werre kann. Sie ist in die {{PLURAL:$1|follichend Seit|follichende Seite}} ingebund, die mittels von der Kaskadesperroption geschützt {{PLURAL:$1|ist|sind}}:",
+'titleprotectedwarning' => "'''Achtung: Die Seiteerstellung woard so geschützt, dass norre Benutzer mit [[Special:ListGroupRights|spezielle Rechte]] die Seit erstelle könne.'''
+Zu der Information follicht der aktuelle Logbuchintrooch:",
+'templatesused' => '{{PLURAL:$1|Die folliched Voarlooche weard|Follichende Voarlooche werre}} uff die Seit verwenndt:',
+'templatesusedpreview' => '{{PLURAL:$1|Die follichend Voarlooche weard|Follichende Voarlooche werre}} von der Seitevoarschau verwendt:',
+'templatesusedsection' => '{{PLURAL:$1|Die follichend Voarlooche weard|Follichend Voarlooche werre}} in dem Abschnitt verwent:',
+'template-protected' => '(schreibgeschützt)',
+'template-semiprotected' => '(schreibgeschützt für unoongemeldete und neie Benutzer)',
+'hiddencategories' => 'Die Seit ist Mitglied von {{PLURAL:$1|1 versteckter Kategorie|$1 versteckte Kategoriee}}:',
+'nocreatetext' => 'Uff {{SITENAME}} woard das Erstelle von neier Seite ingeschränkt. Du kannst bestehnde Seite ännre orrer dich [[Special:UserLogin|oonmelde]].',
+'nocreate-loggedin' => 'Du host net die erforderliche Berechtichung, um neie Seite erstelle zu könne.',
+'sectioneditnotsupported-title' => 'Die Beoorbeitung von Abschnitte weard net unnerstützt',
+'sectioneditnotsupported-text' => 'Die Beoorbeitung von Abschnitte weard uff der Beoorbeitungsseit net unnerstützt.',
+'permissionserrors' => 'Berechtichungsfehler',
+'permissionserrorstext' => 'Du bist net berechticht, die Aktion auszuführe. {{PLURAL:$1|Grund|Gründe}}:',
+'permissionserrorstext-withaction' => 'Du bist aus {{PLURAL:$1|dem follichend Grund|den follichende Gründe}} net berechticht, $2:',
+'recreate-moveddeleted-warn' => "'''Achtung: Du erstellst en Seit, wo schon früher gelöscht woor.'''
+
+Bitte prüf sorrichfältich, ob die erneite Seiteerstellung den Richtlinie entsprecht.
+Zu deiner Information follicht das Lösch- und Verschiebungs-Logbuch mit der Begründung für die voarhergehnd Löschung:",
+'moveddeleted-notice' => 'Die Seit woard gelöscht. Zur Information follicht das Lösch- und Verschiebungs-Logbuch von der Seit.',
+'log-fulllog' => 'Alle Logbuchinträge ansiehn',
+'edit-hook-aborted' => 'Die Beoorbeitung woard ohne Erklärung doorrich en Schnittstell abgebroche.',
+'edit-gone-missing' => 'Die Seit konnt net aktualisiert sin.
+Die woard oonscheinend gelöscht.',
+'edit-conflict' => 'Beoorbeitungskonflikt.',
+'edit-no-change' => 'Dein Beoorbeitung woard ignoriert, do ken Ännrung an dem Text voargenomm  woard.',
+'postedit-confirmation' => 'Dein Beoorbeitung woard gespeichert.',
+'edit-already-exists' => 'Die neie Seit konnt net erstellt werre, do sie bereits voarhand ist.',
+'defaultmessagetext' => 'Standardtext',
+'content-failed-to-parse' => 'Parsierung von den Inhalt $2 für Modell $1 fehlgeschlohn: $3',
+'invalid-content-data' => 'Ungültiche Inhaltsdate',
+'content-not-allowed-here' => 'Der Inhalt "$1" ist uff der Seit [[$2]] net erlaubt',
+'editwarning-warning' => 'Das Verlosse von der Seit kann dozu führe, dass dein Ännrungen verloar gehn.
+Wenn du oongemeldt bist, kannst du das Oonzeiche von der Warnung im Bereich „{{int:prefs-editing}}“ deiner Instellunge abschalte.',
+'editpage-notsupportedcontentformat-title' => 'Das Inhaltsformat weard net unnerstützt',
+'editpage-notsupportedcontentformat-text' => 'Das Inhaltsformat $1 weard vom Inhaltsmodell $2 net unnerstützt.',
+
+# Content models
+'content-model-wikitext' => 'Wikitext',
+'content-model-text' => 'Klartext',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
+
+# Parser/template warnings
+'expensive-parserfunction-warning' => "'''Achtung:''' Die Seit enthält zu viele Aufrufe uffwändicher Parserfunktione.
+
+Die därref nemehr als wie $2 {{PLURAL:$2|Uffruf|Uffrufe}} honn, do {{PLURAL:$1|ist aktuell $1 Uffruf|sind aktuell $1 Uffrufe}}.",
+'expensive-parserfunction-category' => 'Seite, wo uffwändiche Parserfunktione zu oft uffrufe',
+'post-expand-template-inclusion-warning' => 'Warnung: Die Gröss ingebundner Voarlooche ist zu gross, eniche Voarlooche könne net ingebund sin.',
+'post-expand-template-inclusion-category' => 'Seite, in denen die maximale Grösse ingebundner Voarlooche üwerschritt ist',
+'post-expand-template-argument-warning' => "'''Warnung:''' Die Seit enthält mindestens en Parameter in ener Voarlooche, wo expandiert zu gross ist. Die Parameter werre ignoriert.",
+'post-expand-template-argument-category' => 'Seite mit ignorierte Voarloocheparameter',
+'parser-template-loop-warning' => 'Voarloochschleif entdeckt: [[$1]]',
+'parser-template-recursion-depth-warning' => 'Voarloocherekursionstiefgrenz üwerschritt ($1)',
+'language-converter-depth-warning' => 'Sprochkonvertertieflimit üwerschritt ($1)',
+'node-count-exceeded-category' => 'Seite, wo die Knoteoonzoohl üwerschritt honn',
+'node-count-exceeded-warning' => 'Die Seit hot die Knotepunktoonzoohl üwerschritt.',
+'expansion-depth-exceeded-category' => 'Seite, wo die Expansionstiefe überschritt honn',
+'expansion-depth-exceeded-warning' => 'Die Seit hot die Expansionstiefe üwerschritt.',
+'parser-unstrip-loop-warning' => 'Zirkelbezuch festgestellt',
+'parser-unstrip-recursion-limit' => 'Rekursionsgrenz beim Ufflöse üwerschritt ($1)',
+'converter-manual-rule-error' => 'Bei der manuelle Sprochkonvertierungsrechel woard en Fehler entdeckt.',
+
+# "Undo" feature
+'undo-success' => 'Die Beoorbeitung kann rückgänchig gemacht werre.
+Bittschön prüf den Vergleich do unne, um sicherzustelle, dass du das tun möchst, und speichre dann do unne deine Ändrunge, um die Beoorbeitung rückgängig zu mache.',
+'undo-failure' => 'Die Ännrung konnt net rückgängich gemacht sin, weil der betroffne Abschnitt zwischenzeitlich verännert woard.',
+'undo-norev' => 'Die Beorbeitung konnt net rückgängich gemacht sin, wil die net voarhand ist orrer gelöscht woard.',
+'undo-nochange' => 'Anscheinnd woard die Beoorbeitung schon rückgängich gemacht.',
+'undo-summary' => 'Ändrung $1 von [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussion]]) rückgängich gemacht.',
+'undo-summary-username-hidden' => 'Ännrung $1 von en versteckte Benutzer rückgängich gemacht.',
+
+# Account creation failure
+'cantcreateaccounttitle' => 'Das Benutzerkonto kann net erstellt sin',
+'cantcreateaccount-text' => "Die Erstellung von en Benutzerkonto raus von der IP-Adresse '''($1)''' woor doorrich [[User:$3|$3]] gesperrt.
+
+Grund der Sperr: ''$2''",
+'cantcreateaccount-range-text' => "Das Erstell von Benutzerkonte von IP-Adressen im Bereich '''$1''', wo dein IP-Adress ('''$4''') enthält, woor von [[User:$3|$3]] gesperrt.
+
+Der oongebne Grund von $3 laut: ''$2''",
+
+# History pages
+'viewpagelogs' => 'Logbücher von der Seit oonzeiche',
+'nohistory' => 'Zu der Seit ist keh Versionsgeschicht voarhand.',
+'currentrev' => 'Aktuelle Version',
+'currentrev-asof' => 'Aktuelle Version vom $2, $3 Uhr',
+'revisionasof' => 'Version vom $2, $3 Uhr',
+'revision-info' => 'Version vom $4, $5 Uhr von $2',
+'previousrevision' => '← Nächstältre Version',
+'nextrevision' => 'Nächstjüngre Version →',
+'currentrevisionlink' => 'Aktuelle Version',
+'cur' => 'Aktuell',
+'next' => 'Nächste',
+'last' => 'Voarheriche',
+'page_first' => 'Oonfang',
+'page_last' => 'letzte',
+'histlegend' => 'Zur Oonzeiche von der Ännrunge enfach die zu vergleichende Versione auswähle und die Schaltfläche „{{int:compareselectedversions}}“ klicke.<br />
+* ({{int:cur}}) = Unnerschied zur aktuelle Version, ({{int:last}}) = Unnerschied zur voarheriche Version
+* Uhrzeit/Datum = Version zu der Zeit, Benutzernoome/der Beoorbeiter sein IP-Adress, {{int:minoreditletter}} = Klen Ännrung',
+'history-fieldset-title' => 'In der Versionsgeschicht suche',
+'history-show-deleted' => 'Nuar gelöschte Versione zeiche',
+'histfirst' => 'ältest',
+'histlast' => 'neiest',
+'historysize' => '({{PLURAL:$1|1 Byte|$1 Bytes}})',
+'historyempty' => '(leer)',
+
+# Revision feed
+'history-feed-title' => 'Versionsgeschicht',
+'history-feed-description' => 'Versionsgeschichte von der Seit in {{SITENAME}}',
+'history-feed-item-nocomment' => '$1 am $3 um $4 Uhr',
+'history-feed-empty' => 'Die verlangte Seit existiert net. Vielleicht woard se abgewischt orrer verschubt. [[Special:Search|Doorrichsuch]] {{SITENAME}} für passende neie Seite.',
+
+# Revision deletion
+'rev-deleted-comment' => '(Zusammerfassung entfernt)',
+'rev-deleted-user' => '(Benutzernoome entfernt)',
+'rev-deleted-event' => '(Logbuchaktion entfernt)',
+'rev-deleted-user-contribs' => '[Benutzernoome orrer IP-Adress entfernt – Beoorbeitung aus Beiträche versteckt]',
+'rev-deleted-text-permission' => "Die Version woard '''ausgewischt'''.
+Nähre Oongäb zum Auswischvoargang sowie en Begründung stehn im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Auswisch-Logbuch].",
+'rev-deleted-text-unhide' => "Die Version woard '''ausgewischt'''.
+Nähre Oongäb stehn im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Auswisch-Logbuch].
+Du kannst [$1 die Version einsiehn], insoweit du möchst.",
+'rev-suppressed-text-unhide' => "Die Version woard '''unnerdrückt'''.
+Nähre Oongäb stehn im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unnerdrückungs-Logbuch].
+Du kannst [$1 die Version einsiehn], insoweit du möchst.",
+'rev-deleted-text-view' => "Die Version woard '''abgewischt'''.
+Du kannst se einsiehn, insofern du möchst. Nähre Oongäb stehn im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Abwasch-Logbuch].",
+'rev-suppressed-text-view' => "Die Version woard '''unnerdrückt'''.
+Du kannst sie einsiehn, sofern du möchst. Nähre Oongäb stehn im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unnerdrückungs-Logbuch].",
+'rev-deleted-no-diff' => "Du kannst den Unnerschied net betrachte, weil ene von der Versione '''abgewischt''' woard.
+Details stehn im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Abwasch-Logbuch].",
+'rev-suppressed-no-diff' => "Du kannst den Versionsunnerschied net betrachte, weil ene von der Versione '''abgewischt''' woard.",
+'rev-deleted-unhide-diff' => "Ene von der Versione von das Versionsunnerschied woard '''abgewischt'''.
+Nähre Oongä stehn im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Abwäsch-Logbuch].
+Du kannst [$1 die Versionsunnerschied insiehn], soweit du möchst.",
+'rev-suppressed-unhide-diff' => "En von der Versione von das Versionsunnerschied woard '''unnerdrückt'''.
+Näehre Oongäb stehn im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Unnerdrückungs-Logbuch].
+Du kannst [$1 den Versionsunnerschied insiehn], soweit du möchst.",
+'rev-deleted-diff-view' => "En Version von das Versionsunnerschied woard '''abgewischt'''.
+Du kannst den Versionsunnerschied insiehn, soweit du möchst. Näehre Oongäb stehn im [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Abwisch-Logbuch].",
+'rev-suppressed-diff-view' => "En von der Versione von das Versionsunnerschiede woard '''unnerdrückt'''.
+Du kannst die Versionsunnerschied insiehn, soweit du möchst. Näehre Oongäb stehn im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Unnerdrückungs-Logbuch].",
+'rev-delundel' => 'zeiche/verstecke',
+'rev-showdeleted' => 'Zeich',
+'revisiondelete' => 'Versione abwische/wiederhearstelle',
+'revdelete-nooldid-title' => 'Kein Version oongeb',
+'revdelete-nooldid-text' => 'Du host entweder ken Version oongeb, uff die die Aktion ausgeführt win soll, die gewählte Version ist net voarhand orrer du versuchst, die aktuelle Version zu entferne.',
+'revdelete-no-file' => 'Die oongebne Datei ist net voarhand.',
+'revdelete-show-file-confirm' => 'Bist du sicher, dass du die gelöschte Version von der Datei "<nowiki>$1</nowiki>" vom $2 um $3 Uhr oonsiehn willst?',
+'revdelete-show-file-submit' => 'Jo',
+'revdelete-selected-text' => 'Ausgewählte {{PLURAL:$1|Version|Versione}} von [[:$2]]:',
+'revdelete-selected-file' => 'Ausgewählte {{PLURAL:$1|Dateiversion|Dateiversione}} von [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Gewählter Logbucheintrooch|Gewählte Logbucheinträche}}:',
+'revdelete-text-text' => 'Gelöschte Versione verbleibe noch in der Versionsgeschicht, jedoch sind Tele von ihre Inhalt für die Öffentlichkeit net zugänglich.',
+'revdelete-text-file' => 'Gelöschte Dateiversione verbleibe noch in der Datei-Versionsgeschicht, jedoch sind Tele von ehre Inhalt für die Öffentlichkeit net zugänglich.',
+'logdelete-text' => 'Gelöschte Logbucheinträch verbleibe noch in den Logbücher, jedoch sind Tele von ehre Inhalts für die Öffentlichkeit net zugänglich.',
+'revdelete-text-others' => 'Annre Administratore uff {{SITENAME}} honn noch Zugriff uff den versteckte Inhalt und könne ehn ooch mithelfe um der Spezialseit wiederhearstelle, solang ken zusätzliche Beschränkunge festgeleht sin.',
+'revdelete-confirm' => 'Bittschön bestätich, dass du beabsichtichst, das zu tun, die Konsequenze verstehst und es in Üwereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinie]] tust.',
+'revdelete-suppress-text' => "Unnerdrückung sollte '''nuar''' in den follichende Fälle voargenomm sin:
+* Potentiell beleidichende Informatione
+* Unangebrachte persönliche Informatione
+*: ''Adresse, Telefonnummer, Sozialversichrungsnummer, und so weiter''",
+'revdelete-legend' => 'Setz der Sichtbarkeitseinschränkunge',
+'revdelete-hide-text' => 'Der Version sein Text',
+'revdelete-hide-image' => 'Dateiinhalt verstecke',
+'revdelete-hide-name' => 'Logbuchaktion und Ziel verstecke',
+'revdelete-hide-comment' => 'Beoorbeitungszusammerfassung',
+'revdelete-hide-user' => 'Benutzernoome/IP-Adress von der Beoorbeiter',
+'revdelete-hide-restricted' => 'Daten sowohl voar Administratore als wie ooch annre Benutzer unnerdrücke',
+'revdelete-radio-same' => '(nicht ännre)',
+'revdelete-radio-set' => 'Versteckt',
+'revdelete-radio-unset' => 'Sichtbar',
+'revdelete-suppress' => 'Grund von der Abwischung ooch voar Administratore verstecke',
+'revdelete-unsuppress' => 'Inschränkunge für wiederhergestellte Versione uffhebe',
+'revdelete-log' => 'Grund:',
+'revdelete-submit' => 'Uff gewählte {{PLURAL:$1|Version|Versione}} anwenne',
+'revdelete-success' => "'''Die Versionsoonsicht woard aktualisiert.'''",
+'revdelete-failure' => "'''Die Versionssichtbarkeit konnt net aktualisiert sin:'''
+$1",
+'logdelete-success' => "'''Logbuchoonsicht erfollichreich geännert.'''",
+'logdelete-failure' => "'''Logbuchsichtbarkeit kann net geännert sin:'''
+$1",
+'revdel-restore' => 'Sichtbarkeit ännre',
+'pagehist' => 'Versionsgeschicht',
+'deletedhist' => 'Ausgewischte Versione',
+'revdelete-hide-current' => 'Fehler beim Verstecke von der Eintrooch vom $1, $2 Uhr: Das ist die aktuelle Version.
+Sie kann net versteckt sin.',
+'revdelete-show-no-access' => 'Fehler beim Oonzeiche von der Eintrooch vom $1, $2 Uhr: Der Eintrooch woard als "eingeschränkt" markiert.
+Du host druf ken Zugriff.',
+'revdelete-modify-no-access' => 'Fehler beim Beoorbeite von der Eintroohc vom $1, $2 Uhr: Der Eintrooch woard als wie "eingeschränkt" markiert.
+Du host druf ken Zugriff.',
+'revdelete-modify-missing' => 'Fehler beim Beoorbeite von ID $1: Es fehlt in der Datebank!',
+'revdelete-no-change' => "'''Warnung:''' Der Eintrooch vom $1, $2 Uhr besitzt schon die gewünschte Sichtbarkeitseinstellunge.",
+'revdelete-concurrent-change' => 'Fehler beim Beoorbeite von der Eintrooch vom $1, $2 Uhr: Es scheint, als ob der Status von jemandem geännert woard, bevoar du voarhast, ihn zu beoorbeite.
+Bitte prüf die Logbücher.',
+'revdelete-only-restricted' => 'Fehler beim Verstecke von der Eintrooch vom $1, $2 Uhr: Du kannst ken Eintrooch voar Administratore verstecke, ohne en der annre Oonsichtsoptione gewählt zu hoon.',
+'revdelete-reason-dropdown' => '*Allgemeine Abwischgründe
+** Urheberrechtsverletzung
+** Unoongebrachte Kommentare orrer persönliche Informatione
+** Unoongebrachter Benutzernoome
+** Potentiell beleidichende Informatione',
+'revdelete-otherreason' => 'Annre/ergänzender Grund:',
+'revdelete-reasonotherlist' => 'Annrer Grund',
+'revdelete-edit-reasonlist' => 'Abwischgründe beoorbeite',
+'revdelete-offender' => 'Der Version sein Autor:',
+
+# Suppression log
+'suppressionlog' => 'Oversight-Logbuch',
+'suppressionlogtext' => 'Das ist das Logbuch der Oversight-Aktione (Ännrunge von der Sichtbarkeit von Versione, Beoorbeitungskommentare, Benutzernoome und Benutzersperre).
+Sieh die [[Special:BlockList|List von der gesperrte IP-Adresse und Benutzernoome]] für aktuelle Sperre.',
+
+# History merging
+'mergehistory' => 'Versionsgeschichte vereine',
+'mergehistory-header' => 'Mit der Spezialseit kannst du die Versionsgeschicht von en Ursprungsseit mit der Versionsgeschicht von en Zielseit vereine.
+Stell sicher, dass die Versionsgeschicht von en Seit historisch korrekt ist.',
+'mergehistory-box' => 'Versionsgeschichte zwooier Seite vereine',
+'mergehistory-from' => 'Uarsprungsseit:',
+'mergehistory-into' => 'Zielseit:',
+'mergehistory-list' => 'Versione, wo vereinigt sin könne',
+'mergehistory-merge' => 'Die follichende Versione von "[[:$1]]" könne noh "[[:$2]]" üwertroon sin. Markier die Version, bis zu der (einschliesslich) die Versione üwertroon sin solle. Bittschön beacht, dass die Nutzung von der Navigationslink die Auswahl zurücksetzt.',
+'mergehistory-go' => 'Zeich Versione, wo vereinicht sin könne',
+'mergehistory-submit' => 'Vereinich Versione',
+'mergehistory-empty' => 'Do könne ken Versione vereinicht sin.',
+'mergehistory-success' => '{{PLURAL:$3|1 Version|$3 Versione}} von "[[:$1]]" erfollichreich noh „[[:$2]]“ vereinicht.',
+'mergehistory-fail' => 'Versionsvereinichung net möchlich, bittschön prüf die Seit und die Zeitoongäb.',
+'mergehistory-no-source' => 'Uarsprungsseit "$1" ist net voarhand.',
+'mergehistory-no-destination' => 'Zielseit "$1" ist net voarhand.',
+'mergehistory-invalid-source' => 'Uarsprungsseit muss en gülticher Seitnoome sin.',
+'mergehistory-invalid-destination' => 'Zielseit muss en gülticher Seitnoome sin.',
+'mergehistory-autocomment' => '"[[:$1]]" vereinicht noh "[[:$2]]"',
+'mergehistory-comment' => '"[[:$1]]" vereinicht noh "[[:$2]]": $3',
+'mergehistory-same-destination' => 'Ausgangs- und Zielseit deerfe net identisch sin',
+'mergehistory-reason' => 'Grund:',
+
+# Merge log
+'mergelog' => 'Vereinichungs-Logbuch',
+'pagemerge-logentry' => 'vereinichte [[$1]] in [[$2]] (Versione bis $3)',
+'revertmerge' => 'Vereinichung rückgängich mache',
+'mergelogpagetext' => 'Das ist das Logbuch von der vereinichte Versionsgeschichte.',
+
+# Diffs
+'history-title' => '$1: Versionsgeschicht',
+'difference-title' => '$1: Unnerschied zwischich den Versione',
+'difference-title-multipage' => '$1 und $2: Unnerschied zwischich den Seite',
+'difference-multipage' => '(Unnerschied zwischich Seite)',
+'lineno' => 'Zeil $1:',
+'compareselectedversions' => 'Gewählte Versione vergleiche',
+'showhideselectedversions' => 'Gewählte Versione zeiche/verstecke',
+'editundo' => 'rückgängich mache',
+'diff-empty' => '(ken Unnerschied)',
+'diff-multi-sameuser' => '({{PLURAL:$1|En dozwischerlehnde Version|$1 dozwischerlehnde Versione}} von der selwiche Benutzer werre net oongezeicht)',
+'diff-multi-otherusers' => '({{PLURAL:$1|En dozwischerlehnd Version|$1 dozwischerlehnde Versione}} von {{PLURAL:$2|en annre Benutzer|$2 Benutzer}} werre net oongezeicht)',
+'diff-multi-manyusers' => '({{PLURAL:$1|$1 dozwischerlehnde Versione}} von meahr als {{PLURAL:$2|$2 Benutzer}}, die net oongezeicht sin)',
+'difference-missing-revision' => '{{PLURAL:$2|Ein Version|$2 Versione}} der Unnerschiedsoonzeich ($1) {{PLURAL:$2|woard|worre}} net gefund.
+
+Der Fehler weard normalerweis von en veraltete Link zur Versionsgeschicht von en Seit verursacht, wo zwischichzeitlich abgewischt woard.
+Einzelheite sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Abwasch-Logbuch] voarhand.',
+
+# Search results
+'searchresults' => 'Suchergebnisse',
+'searchresults-title' => 'Suchergebnisse für „$1“',
+'toomanymatches' => 'Die Oonzoohl von der Suchergebnisse ist zu gross, bittschön versuch en annre Abfroch.',
+'titlematches' => 'Üwereinstimmunge mit Seitetitle',
+'textmatches' => 'Üwereinstimmunge mit Inhalte',
+'notextmatches' => 'Ken Üwereinstimmunge mit Inhalte',
+'prevn' => '{{PLURAL:$1|voarhericher|vorheriche $1}}',
+'nextn' => '{{PLURAL:$1|nächster|nächste $1}}',
+'prevn-title' => '{{PLURAL:$1|Voarheriches Ergebnis|Vorherige $1 Ergebnisse}}',
+'nextn-title' => '{{PLURAL:$1|Voarheriches Ergebnis|Vorherige $1 Ergebnisse}}',
+'shown-title' => 'Zeiche $1 {{PLURAL:$1|Ergebnis|Ergebnisse}} pro Seit',
+'viewprevnext' => 'Zeiche ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-exists' => "'''Es gebt en Seit, wo den Noome \"[[:\$1]]\" hot.''' 
+{{PLURAL:\$2|0=|Sieh ooch die annre Suchresultate wo gefund woore.}}",
+'searchmenu-new' => '<strong>Erstell die Seit "[[:$1]]" in dem Wiki.</strong> {{PLURAL:$2|0=|Sieh ooch die üwer dein Such gefundne Seit.|Sieh ooch die gefundne Suchergebnisse.}}',
+'searchprofile-articles' => 'Inhaltsseite',
+'searchprofile-project' => 'Helleft - und Projektseite',
+'searchprofile-images' => 'Multimedia',
+'searchprofile-everything' => 'Alles',
+'searchprofile-advanced' => 'Erweitert',
+'searchprofile-articles-tooltip' => 'Suche in $1',
+'searchprofile-project-tooltip' => 'Such in $1',
+'searchprofile-images-tooltip' => 'Noh Dateie suche',
+'searchprofile-everything-tooltip' => 'Gesamte Inhalt doorrichsuche (inklusive Diskussionsseite)',
+'searchprofile-advanced-tooltip' => 'Such in weitre Noomeräume',
+'search-result-size' => '$1 ({{PLURAL:$2|1 Wort|$2 Wörter}})',
+'search-result-category-size' => '{{PLURAL:$1|1 Seit|$1 Seite}} ({{PLURAL:$2|1 Unnerkategorie|$2 Unnerkategorie}}, {{PLURAL:$3|1 Datei|$3 Dateie}})',
+'search-result-score' => 'Relevanz: $1 %',
+'search-redirect' => '(Weiterleitung von „$1“)',
+'search-section' => '(Abschnitt $1)',
+'search-file-match' => '(treffende Dateiinhalte)',
+'search-suggest' => 'Host du gemeent „$1“?',
+'search-interwiki-caption' => 'Schwesterprojekte',
+'search-interwiki-default' => 'Ergebnisse von $1:',
+'search-interwiki-more' => '(weitre)',
+'search-relatedarticle' => 'Verwandte',
+'searcheverything-enable' => 'In alle Noomeräume suche',
+'searchrelated' => 'verwandt',
+'searchall' => 'alle',
+'showingresults' => "Hier {{PLURAL:$1|ist '''1''' Ergebnis|sind '''$1''' Ergebnisse}}, beginnend mit Nummer '''$2.'''",
+'showingresultsinrange' => 'Unne {{PLURAL:$1|weard <strong>en</strong> Ergebnis|werre bis zu <strong>$1</strong> Ergebnisse}} im Bereich <strong>$2</strong> bis <strong>$3</strong> oongezeicht.',
+'showingresultsnum' => "Hier {{PLURAL:$3|ist '''1''' Ergebnis|sind '''$3''' Ergebnisse}}, beginnend mit Nummer '''$2.'''",
+'showingresultsheader' => "{{PLURAL:$5|Ergebnis '''$1''' von '''$3'''|Ergebnisse '''$1–$2''' von '''$3'''}} für '''$4'''",
+'search-nonefound' => 'Zu deiner Suchoonfroch wore ken Ergebnisse gefund.',
+'powersearch-legend' => 'Erweiterte Such',
+'powersearch-ns' => 'Such in Noomeräume:',
+'powersearch-redir' => 'Weiterleitunge oonzeiche',
+'powersearch-togglelabel' => 'Wähl aus:',
+'powersearch-toggleall' => 'All',
+'powersearch-togglenone' => 'Ken',
+'search-external' => 'Externe Such',
+'searchdisabled' => 'Die {{SITENAME}}-Such ist deaktiviert. Du kannst unnerdessen mit Google suche. Bittschön bedenke, dass der Suchindex von {{SITENAME}} veraltet sin kann.',
+'search-error' => 'Bei der Such ist en Fehler uffgetret: $1',
+
+# Preferences page
+'preferences' => 'Einstellunge',
+'mypreferences' => 'Instellunge',
+'prefs-edits' => 'Oonzoohl von der Bearbeitunge:',
+'prefsnologintext2' => 'Du musst dich $1, um Benutzereinstellunge festzulehn.',
+'prefs-skin' => 'Benutzerowerfläche',
+'skin-preview' => 'Vorschau',
+'datedefault' => 'Standard',
+'prefs-beta' => 'Beta-Funktione',
+'prefs-datetime' => 'Datum und Zeit',
+'prefs-labs' => 'Alpha-Funktione',
+'prefs-user-pages' => 'Benutzerseite',
+'prefs-personal' => 'Benutzerdate',
+'prefs-rc' => 'Letzte Ännrunge',
+'prefs-watchlist' => 'Beobachtungslist',
+'prefs-watchlist-days' => 'Maximale Oonzoohl von der inbezochne Tooche:',
+'prefs-watchlist-days-max' => 'Maximal {{PLURAL:$1|en Tooch|$1 Tooche}}',
+'prefs-watchlist-edits' => 'Maximal Oonzoohl von der oongezeichte Inträche:',
+'prefs-watchlist-edits-max' => 'Maximal 1.000 Inträche',
+'prefs-watchlist-token' => 'Token von der Beobachtungslist:',
+'prefs-misc' => 'Verschiednes',
+'prefs-resetpass' => 'Passwort ännre',
+'prefs-changeemail' => 'E-Mail-Adress ännre',
+'prefs-setemail' => 'E-Mail-Adress festlehn',
+'prefs-email' => 'E-Mail-Optione',
+'prefs-rendering' => 'Aussiehn',
+'saveprefs' => 'Instellunge speichre',
+'restoreprefs' => 'Alle Standardinstellunge wiederhearstelle (in alle Abschnitte)',
+'prefs-editing' => 'Beoorbeite',
+'rows' => 'Zeile:',
+'columns' => 'Spalte:',
+'searchresultshead' => 'Such',
+'stub-threshold' => 'Linkformatierung <a href="#" class="stub">klen Seite</a> (in Bytes):',
+'stub-threshold-disabled' => 'Deaktiviert',
+'recentchangesdays' => 'Oonzoohl von der standardmässich inbezochne Tooche:',
+'recentchangesdays-max' => 'Maximal $1 {{PLURAL:$1|Tooch|Tooche}}',
+'recentchangescount' => 'Oonzoohl von der standardmässich oongezeichte Beoorbeitunge:',
+'prefs-help-recentchangescount' => 'Das umfasst die List von der letzte Ännrunge, die Versionsgeschichte und die Logbücher.',
+'prefs-help-watchlist-token2' => 'Das ist der geheime Schlüssel zum Webfeed von deiner Beobachtungslist.
+Jeder, wo ihn kennt, kann dein Beobachtungslist lese. Tue ihn, dodrum, net teile.
+[[Special:ResetTokens|Klick hier, wenns du ihn zurücksetze musst]].',
+'savedprefs' => 'Dein Einstellunge woorre gespeichert.',
+'timezonelegend' => 'Zeitzone:',
+'localtime' => 'Platzzeit:',
+'timezoneuseserverdefault' => 'Standardzeit von das Wiki nutze ($1)',
+'timezoneuseoffset' => 'Annre (Unnerschied oongewe)',
+'servertime' => 'Aktuelle Zeit uff dem Server:',
+'guesstimezone' => 'Vom Browser üwernehme',
+'timezoneregion-africa' => 'Afrika',
+'timezoneregion-america' => 'Amerika',
+'timezoneregion-antarctica' => 'Antarktis',
+'timezoneregion-arctic' => 'Arktis',
+'timezoneregion-asia' => 'Asie',
+'timezoneregion-atlantic' => 'Atlantischer Ozean',
+'timezoneregion-australia' => 'Australie',
+'timezoneregion-europe' => 'Europa',
+'timezoneregion-indian' => 'Indischer Ozean',
+'timezoneregion-pacific' => 'Pazifischer Ozean',
+'allowemail' => 'E-Mail-Empfang von annre Benutzer ermöchliche',
+'prefs-searchoptions' => 'Such',
+'prefs-namespaces' => 'Noomeräume',
+'defaultns' => 'Annrenfalls in den Noomeräume suche:',
+'default' => 'Voareinstellung',
+'prefs-files' => 'Dateie',
+'prefs-custom-css' => 'Benutzerdefinierte CSS',
+'prefs-custom-js' => 'Benutzerdefiniertes JavaScript',
+'prefs-common-css-js' => 'Gemeinsames CSS/JavaScript von aller Benutzerowerfläche:',
+'prefs-reset-intro' => 'Du kannst die Seit verwenne, um die Einstellunge uff die Standards zurückzusetzen.
+Das kann net meh rückgängich gemacht sin.',
+'prefs-emailconfirm-label' => 'E-Mail-Bestätichung:',
+'youremail' => 'E-Mail-Adress:',
+'username' => '{{GENDER:$1|Benutzernoome}}:',
+'uid' => '{{GENDER:$1|Benutzerkennung}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Mitglied}} von der {{PLURAL:$1|Benutzergrupp|Benutzergruppe}}:',
+'prefs-registration' => 'Oonmeldezeitpunkt:',
+'yourrealname' => 'Dein Noome wie registriert:',
+'yourlanguage' => 'Sproche von der Benutzerowerfläche:',
+'yourvariant' => 'Sprachvariante:',
+'prefs-help-variant' => 'Die bevoarzuchte Schreibvariante orrer Orthografie, in der die Wikiseite oongezeicht werre solle.',
+'yournick' => 'Signatur:',
+'prefs-help-signature' => 'Beiträche uff Diskussionsseite sollte mit „<nowiki>~~~~</nowiki>“ signiert sin, was dann in die Signatur mit Zeitstempel umgewandelt weard.',
+'badsig' => 'Die Syntax von der Signatur ist ungültich; bittschön HTML üwerprüfe.',
+'badsiglength' => 'Die Signatur därref maximal $1 {{PLURAL:$1|Zeiche}} lang sin.',
+'yourgender' => 'Mit was für Geschlecht tust du dich identifiziere?',
+'gender-unknown' => 'Ich möcht hierzu ken Oongäb mache',
+'gender-male' => 'Ich sin männlich',
+'gender-female' => 'Ich sin weiblich',
+'prefs-help-gender' => 'Das ist eine freiwilliche Oongäb.
+Die Software nutzt se, um dich oonzurede sowie als Hinweis für annre doorrich Verwennung von der zutreffende grammatikalische Geschlecht.
+Die Information ist öffentlich.',
+'email' => 'E-Mail',
+'prefs-help-realname' => 'Das ist en freiwilliche Oongäb. Domit kann dein bürgerlicher/registrierte Noome zu deine Beiträche zugeordnet sin.',
+'prefs-help-email' => 'Die oongäb von en E-Mail-Adress ist optional, ermöchlicht awer die Zusendung von en Ersatzpasswort, soweit du dein Passwort vergess host.',
+'prefs-help-email-others' => 'Mit annre Benutzer kannst du ooch üwer die Benutzerdiskussionsseit Kontakt uffnehme, ohne dass du dein Identität ufflehn musst.',
+'prefs-help-email-required' => 'Es weard en gültiche E-Mail-Adress benöticht.',
+'prefs-info' => 'Basisinformatione',
+'prefs-i18n' => 'Sproch',
+'prefs-signature' => 'Signatur',
+'prefs-dateformat' => 'Datumsformat',
+'prefs-timeoffset' => 'Zeitunnerschied',
+'prefs-advancedediting' => 'Allgemeine Optione',
+'prefs-editor' => 'Beoorbeitungsprogramm',
+'prefs-preview' => 'Vorschau',
+'prefs-advancedrc' => 'Erweiterte Optione',
+'prefs-advancedrendering' => 'Erweiterte Optione',
+'prefs-advancedsearchoptions' => 'Erweiterte Optione',
+'prefs-advancedwatchlist' => 'Erweiterte Optione',
+'prefs-displayrc' => 'Oonzeichoptione',
+'prefs-displaysearchoptions' => 'Oonzeichoptione',
+'prefs-displaywatchlist' => 'Oonzeichoptione',
+'prefs-tokenwatchlist' => 'Token',
+'prefs-diffs' => 'Versionsvergleich',
+'prefs-help-prefershttps' => 'Die Instellung weard bei deiner nächste Oonmeldung weerreksam.',
+'prefs-tabs-navigation-hint' => 'Tipp: Du kannst die linke und rechte Pfeiltaste benutze, um zwischich den Registerkoorter in der Reiterlist zu navigiere.',
+
+# User preference: email validation using jQuery
+'email-address-validity-valid' => 'Die E-Mail-Adress scheint gültich zu sin.',
+'email-address-validity-invalid' => 'En gültich E-Mail-Adress ist nötich.',
+
+# User rights
+'userrights' => 'Benutzerrechteverwaltung',
+'userrights-lookup-user' => 'Gruppezugehörigkeit verwalte',
+'userrights-user-editname' => 'Benutzernoome:',
+'editusergroup' => 'Gruppezugehörigkeit ännre',
+'editinguser' => "Ännre Benutzerrechte von '''[[User:$1|$1]]''' $2",
+'userrights-editusergroup' => 'Gruppezugehörigkeit verännre',
+'saveusergroups' => 'Gruppezugehörigkeit ännre',
+'userrights-groupsmember' => 'Mitglied von:',
+'userrights-groupsmember-auto' => 'Automatisch Mitglied von:',
+'userrights-groups-help' => 'Du kannst die Gruppezugehörigkeit {{GENDER:$1|von der Benutzer|die Benutzrin}} ännre:
+* En markierte Kästche bedeitet, dass {{GENDER:$1|der Benutzer|die Benutzrin}} der Grupp Mitglied ist.
+* En nichtmarkierte Kästche bedeitet, dass {{GENDER:$1|der Benutzer|die Benutzrin}} net Mitglied von der Grupp ist.
+* En * bedeitet, dass du das Benutzerrecht noh Erteilung net wieder zurücknehme kannst (orrer umgekeahrt).',
+'userrights-reason' => 'Grund:',
+'userrights-no-interwiki' => 'Du host net die nötiche Berechtichung, um Benutzerrechte in annre Wikis ännre  könne.',
+'userrights-nodatabase' => 'Die Datebank $1 ist net voarhand orrer net lokal.',
+'userrights-nologin' => 'Du musst dich mit en Administratoar-Benutzerkonto [[Special:UserLogin|oonmeld]], um Benutzerrechte ännre.',
+'userrights-notallowed' => 'Du verfüchst net üwer die erforderliche Berechtichunge, um Benutzerrechte vergebe orrer entziehe könne.',
+'userrights-changeable-col' => 'Gruppezugehörigkeit, die du ännre kannst',
+'userrights-unchangeable-col' => 'Gruppezugehörigkeit, die du net ännre kannst',
+'userrights-conflict' => 'Benutzerrechteännerungskonflikt! Bittschön üwerprüf und bestätich deine Ännrunge.',
+'userrights-removed-self' => 'Du host dein eichne Rechte erfollichreich entfernt. Du kannst net länger uff die Seit zugreife.',
+
+# Groups
+'group' => 'Grupp:',
+'group-user' => 'Benutzer',
+'group-autoconfirmed' => 'Automatisch bestätichte Benutzer',
+'group-bot' => 'Bots',
+'group-sysop' => 'Administratore',
+'group-bureaucrat' => 'Bürokrate',
+'group-suppress' => 'Oversighter (Üwerwächter)',
+'group-all' => '(alle)',
+
+'group-user-member' => 'Bot',
+'group-autoconfirmed-member' => '{{GENDER:$1|Automatisch bestätichter Benutzer|Automatisch bestätichte Benutzrin}}',
+'group-bot-member' => 'Bot',
+'group-sysop-member' => '{{GENDER:$1|Administratoar|Administratorin}}',
+'group-bureaucrat-member' => '{{GENDER:$1|Bürokrat|Bürokratin}}',
+'group-suppress-member' => '{{GENDER:$1|Oversighter|Oversightrin}} 
+(Üwerwächter|Üwerwächtrin)',
+
+'grouppage-user' => '{{ns:project}}:Benutzer',
+'grouppage-autoconfirmed' => '{{ns:project}}:Automatisch bestätichte Benutzer',
+'grouppage-bot' => '{{ns:project}}:Bots',
+'grouppage-sysop' => '{{ns:project}}:Administratore',
+'grouppage-bureaucrat' => '{{ns:project}}:Bürokrate',
+'grouppage-suppress' => '{{ns:project}}:Oversighter (Üwerwächter)',
+
+# Rights
+'right-read' => 'Seite lese',
+'right-edit' => 'Seite beoorbeite',
+'right-createpage' => 'Seite erstelle (ausser Diskussionsseite)',
+'right-createtalk' => 'Diskussionsseite erstelle',
+'right-createaccount' => 'Benutzerkonto erstelle',
+'right-minoredit' => 'Bearbeitunge wie klen markiere',
+'right-move' => 'Seite verschiebe',
+'right-move-subpages' => 'Seite inklusive Unnerseite verschiebe',
+'right-move-rootuserpages' => 'Haupt-Benutzerseite verschiebe',
+'right-movefile' => 'Dateie verschiebe',
+'right-suppressredirect' => 'Beim Verschiebe die Erstellung von en Weiterleitung unnerdrücke',
+'right-upload' => 'Dateie hochloode',
+'right-reupload' => 'Üwerschreibe en voarhandne Datei',
+'right-reupload-own' => 'Üwerschreibe von en zuvoar sellebst hochgeladne Datei',
+'right-reupload-shared' => 'Lokales Üwerschreibe von en in enem gemeinsam genutzte Repositorium voarhandne Datei',
+'right-upload_by_url' => 'Dateie von en URL-Adress hochloode',
+'right-purge' => 'Seitecache leere ohne Rückfroche',
+'right-autoconfirmed' => 'Ken Beschränkung doorrich IP-basiert Limits (limmitatione)',
+'right-bot' => 'Behandlung wie automatischer Prozess',
+'right-nominornewtalk' => 'Klene Beoorbeitunge an Diskussionsseite führe zu kenr "Neie Nachrichte"-Oonzeiche',
+'right-apihighlimits' => 'Höchre Limits (limmitatione) in API-Abfroche',
+'right-writeapi' => 'Benutzung von der writeAPI',
+'right-delete' => 'Seite lösche',
+'right-bigdelete' => 'Seite mit grosser Versionsgeschicht abwische',
+'right-deletelogentry' => 'Enzelne Logbuch-Einträche abwische und wiederherstelle',
+'right-deleterevision' => 'Einzelne Versione von en Seit abwische und wiederherstelle',
+'right-deletedhistory' => 'Abgewischte Versione in der Versionsgeschicht oonsiehn, ohne zugehöriche Text',
+'right-deletedtext' => 'Abgewischte Texte und Versionsunnerschiede zwischich abgewischte Versione oonsiehn',
+'right-browsearchive' => 'Noh abgewischte Seite suche',
+'right-undelete' => 'Seite wiederherstelle',
+'right-suppressrevision' => 'Versione oonsiehn und wiederherstelle, die ooch voar Administratore verborriche sind',
+'right-suppressionlog' => 'Private Logbücher oonsiehn',
+'right-block' => 'Benutzer sperre (Schreibrecht)',
+'right-blockemail' => 'Benutzer am Versende von E-Mails hinnre',
+'right-hideuser' => 'Benutzernoome sperre und verberrich.',
+'right-ipblock-exempt' => 'Ausnoohme von IP-Sperre, automatische Sperre und Rangesperre',
+'right-proxyunbannable' => 'Ausnoohme von automatische Proxysperre',
+'right-unblockself' => 'Sich entsperre',
+'right-protect' => 'Seitenschutzstatus ännre und kaskadengeschützte Seite beoorbeite',
+'right-editprotected' => 'Seite bearbeite, wo als "{{int:protect-level-sysop}}" geschützt sind',
+'right-editsemiprotected' => 'Seite beoorbeite, wo als "{{int:protect-level-autoconfirmed}}" geschützt sind',
+'right-editinterface' => 'Benutzeroberfläche beoorbeite',
+'right-editusercssjs' => 'Fremde CSS- und JavaScript-Dateie beoorbeite',
+'right-editusercss' => 'Fremde CSS-Dateie bearbeite',
+'right-edituserjs' => 'Fremde JavaScript-Dateie boobeite',
+'right-editmyusercss' => 'Eichne Benutzer-CSS-Dateie beoorbeite',
+'right-editmyuserjs' => 'Eichne Benutzer-JavaScript-Dateie beoorbeite',
+'right-viewmywatchlist' => 'Eichne Beobachtungsliste oonsiehn',
+'right-editmywatchlist' => 'Eichne Beobachtungslist beoorbeite. Eniche Aktione ermöchliche das Hinzufüche von Seite ohne das Recht.',
+'right-viewmyprivateinfo' => 'Eichne private Date oonsiehn (beispielsweis E-Mail-Adress, bürcherlicher / registrierte Noome)',
+'right-editmyprivateinfo' => 'Eichne private Date beoorbeite (beispielsweis E-Mail-Adress, bürcherlicher / registrierte Noome)',
+'right-editmyoptions' => 'Eichne Einstellunge beoorbeite',
+'right-rollback' => 'Schnelles Zurücksetze',
+'right-markbotedits' => 'Schnell zurückgesetzte Beoorbeitunge wie Bot-Bearbeitung markiere',
+'right-noratelimit' => 'Ken Beschränkung doorrich Limits',
+'right-import' => 'Seite aus annre Wikis importiere',
+'right-importupload' => 'Seite üwer Hochlade von Dateie importiere',
+'right-patrol' => 'Fremde Beoorbeitunge als kontrolliert markiere',
+'right-autopatrol' => 'Eichne Beoorbeitungen automatisch wie kontrolliert markiere',
+'right-patrolmarks' => 'Kontrollmarkierunge in den letzte Ändrunge siehn',
+'right-unwatchedpages' => 'List von der unbeobachtete Seite oonsiehn',
+'right-mergehistory' => 'Versionsgeschichte von Seite vereine',
+'right-userrights' => 'Benutzerrechte beoorbeite',
+'right-userrights-interwiki' => 'Benutzerrechte in annre Wikis beoorbeite',
+'right-siteadmin' => 'Datebank sperre und entsperre',
+'right-override-export-depth' => 'Exportier Seite einschliesslich verlinkter Seite bis zu en Tief von 5',
+'right-sendemail' => 'E-Mails an annre Benutzer sende',
+'right-passwordreset' => 'Passwort von en Benutzer zurücksetze und die dazu verschickte E-Mail einsiehn',
+
+# Special:Log/newusers
+'newuserlogpage' => 'Neioonmeldungs-Logbuch',
+'newuserlogpagetext' => 'Dies ist en Logbuch von der nei erstellte Benutzerkonte.',
+
+# User rights log
+'rightslog' => 'Rechte-Logbuch',
+'rightslogtext' => 'Das ist das Logbuch von der Ännrunge zu Benutzerrechte.',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-read' => 'die Seit zu lese',
+'action-edit' => 'die Seit zu beoorbeite',
+'action-createpage' => 'Seite zu erstelle',
+'action-createtalk' => 'Diskussionsseite erstelle',
+'action-createaccount' => 'der Benutzerkonto erstelle',
+'action-minoredit' => 'die Beoorbeitung als klen markiere',
+'action-move' => 'die Seit verschiebe',
+'action-move-subpages' => 'die Seit und zugehöriche Unnerseite verschiebe',
+'action-move-rootuserpages' => 'Haupt-Benutzerseite verschiebe',
+'action-movefile' => 'Die Datei verschiebe',
+'action-upload' => 'Dateie hochoode',
+'action-reupload' => 'die voarhandne Datei zu üwerschreibe',
+'action-reupload-shared' => 'die Datei aus dem gemeinsam genutzte Repositorium üwerschreibe',
+'action-upload_by_url' => 'Dateie von en Webadress (URL) hochloode',
+'action-writeapi' => 'die API mit Schreibzugriffe verwenne',
+'action-delete' => 'Seite abwische',
+'action-deleterevision' => 'Versione abwische',
+'action-deletedhistory' => 'die List von der abgewischte Versione siehn',
+'action-browsearchive' => 'noh abgewischte Seite suche',
+'action-undelete' => 'die Seit wiederhearstelle',
+'action-suppressrevision' => 'die versteckte Versio einsiehn und wiederhearstelle',
+'action-suppressionlog' => 'das privat Logbuch einsiehn',
+'action-block' => 'den Benutzer sperre',
+'action-protect' => 'den Schutzstatus von Seite ännre',
+'action-rollback' => 'die Ännrunge von der letzte Beoorbeiter von en bestimmter Seit schnell zurücksetze',
+'action-import' => 'Seite aus en andre Wiki importiere',
+'action-importupload' => 'Seite üwer das Hochloode von en Datei importiere',
+'action-patrol' => 'Beoorbeitunge von anne Benutzer wie kontrolliert markiere',
+'action-autopatrol' => 'eichne Beoorbeitunge wie kontrolliert markiere',
+'action-unwatchedpages' => 'die List von der unbeobachtete Seite insiehn',
+'action-mergehistory' => 'die Versionegeschichte von Seite vereine',
+'action-userrights' => 'Benutzerrechte ännre',
+'action-userrights-interwiki' => 'die Rechte von Benutzer in annre Wikis ännre',
+'action-siteadmin' => 'die Datebank sperre orrer frei mache',
+'action-sendemail' => 'E-Mails sende',
+'action-editmywatchlist' => 'dein Beobachtungslist beoorbeite',
+'action-viewmywatchlist' => 'dein Beobachtungslist oonsiehn',
+'action-viewmyprivateinfo' => 'deine private Informatione gucke',
+'action-editmyprivateinfo' => 'deine private Informatione boorbeite',
+
+# Recent changes
+'nchanges' => '$1 {{PLURAL:$1|Ännrung|Ännrunge}}',
+'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|seit dem letzte Besuch}}',
+'enhancedrc-history' => 'Versionsgeschicht',
+'recentchanges' => 'Letzte Ändrunge',
+'recentchanges-legend' => 'Oonzeicheoptione',
+'recentchanges-summary' => 'Uff der Seit kannst du die letzte Ännrunge in dem Wiki nohverfolche.',
+'recentchanges-noresult' => 'Ken Ännrunge im Verloof von (während) vom dem oongebne Zeitraum entspreche die Kriterie.',
+'recentchanges-feed-description' => 'Verfolliche mit dem Feed die letzte Ännrunge in {{SITENAME}}.',
+'recentchanges-label-newpage' => 'Neie Seit',
+'recentchanges-label-minor' => 'Klen Ännrung',
+'recentchanges-label-bot' => 'Ännrung doorich en Bot',
+'recentchanges-label-unpatrolled' => 'Nicht-kontrollierte Ännrung',
+'recentchanges-label-plusminus' => 'Die Ännrung von der Seitengröss in Bytes',
+'recentchanges-legend-heading' => "'''Legende:'''",
+'recentchanges-legend-newpage' => '(sieh ooch die [[Special:NewPages|List von neier Seite]])',
+'rcnotefrom' => 'Oongezeicht sin die Ännrunge seit <strong>$2</strong> (max. <strong>$1</strong> Einträch).',
+'rclistfrom' => 'Nuar Ännrunge seit $3, $2 Uhr zeiche.',
+'rcshowhideminor' => 'Klene Ändrunge $1',
+'rcshowhideminor-show' => 'oonzeiche',
+'rcshowhideminor-hide' => 'versteck',
+'rcshowhidebots' => 'Bots $1',
+'rcshowhidebots-show' => 'Zeich',
+'rcshowhidebots-hide' => 'Versteck',
+'rcshowhideliu' => 'Registrierte Benutzer $1',
+'rcshowhideliu-show' => 'Zeich',
+'rcshowhideliu-hide' => 'Versteck',
+'rcshowhideanons' => 'Unoongemeldete Benutzer $1',
+'rcshowhideanons-show' => 'Zeich',
+'rcshowhideanons-hide' => 'Versteck',
+'rcshowhidepatr' => 'Kontrollierte Ännrunge $1',
+'rcshowhidepatr-show' => 'Zeich',
+'rcshowhidepatr-hide' => 'Versteck',
+'rcshowhidemine' => 'Eichne Beiträche $1',
+'rcshowhidemine-show' => 'Zeich',
+'rcshowhidemine-hide' => 'Versteck',
+'rclinks' => 'Zeich die letzte $1 Ännrunge von der letzte $2 Tooche.<br />$3',
+'diff' => 'Unnerschied',
+'hist' => 'Versione',
+'hide' => 'Versteck',
+'show' => 'Zeich',
+'minoreditletter' => 'K',
+'newpageletter' => 'N',
+'boteditletter' => 'B',
+'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|beobachtender|beobachtende}} Benutzer]',
+'rc_categories' => 'Nur Seite aus den Kategorie (getrennt mit „|“):',
+'rc_categories_any' => 'Alle',
+'rc-change-size-new' => '$1 {{PLURAL:$1|Byte|Bytes}} noh der Ännrung',
+'newsectionsummary' => 'Neier Abschnitt /* $1 */',
+'rc-enhanced-expand' => 'Einzelheite oonzeiche',
+'rc-enhanced-hide' => 'Einzelheite verstecke',
+'rc-old-title' => 'uarsprünglich erstellt wie "$1"',
+
+# Recent changes linked
+'recentchangeslinked' => 'Ändrungen an verlinkte Seite',
+'recentchangeslinked-feed' => 'Ännrunge an verlinkte Seite',
+'recentchangeslinked-toolbox' => 'Ändrungen an verlinkte Seite',
+'recentchangeslinked-title' => 'Ännrungen an Seite, die von „$1“ verlinkt sind',
+'recentchangeslinked-summary' => "Die Spezialseit listet die letzte Ändrunge an den verlinkte Seite uff (bzw. bei Kategorie an den Mitglieder von der Kategorie). Seite uff deiner [[Special:Watchlist|Beobachtungslist]] sind '''fett''' dorgestellt.",
+'recentchangeslinked-page' => 'Seit:',
+'recentchangeslinked-to' => 'Zeich Ännrunge uff Seite, wo hierher verlinke',
+
+# Upload
+'upload' => 'Dateie hochloode',
+'uploadbtn' => 'Dateie hochloode',
+'reuploaddesc' => 'Abbreche und zurück zur Hochloode-Seit',
+'upload-tryagain' => 'Geännerte Dateibeschreibung abschicke',
+'uploadnologin' => 'Net oongemeldt',
+'uploadnologintext' => 'Du musst dich $1, um Dateie hochloode könne.',
+'upload_directory_missing' => 'Das Upload-Verzeichnis ($1) fehlt und konnt doorrich den Webserver ooch net erstellt sin.',
+'upload_directory_read_only' => 'Der Webserver hot keh Schreibrechte für das Upload-Verzeichnis ($1).',
+'uploaderror' => 'Fehler beim Hochloode',
+'upload-recreate-warning' => "'''Achtung: En Datei mit dem Noome woard schon abgewischt orrer verschob.'''
+
+Es folcht en Auszuch aus dem Abwäsch- und Verschiebungs-Logbuch von er Datei.",
+'uploadtext' => "Benutz das Formular, für neie Dateie hochloode.
+
+Geh zu der [[Special:FileList|List hochgeloodner Dateie]], um voarhandne Dateie zu suche und oonzeiche. Sieh ooch das [[Special:Log/upload|Datei-]] und [[Special:Log/delete|Abwäsch-Logbuch]].
+
+Um en '''Bild''' in en Seit zu verwenne, nutz en Link in der follichend Form:
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></code>''' – für en Vollbild
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></code>''' – für en 200px breites Bild innerhalleb von en Box, mit „Alternativer Text“ als Bildbeschreibung
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></code>''' – für en direkt Link uff die Datei, ohne Darstellung von der Datei",
+'upload-permitted' => 'Erlaubt Dateitype: $1.',
+'upload-preferred' => 'Bevoarzuchte Dateitype: $1.',
+'upload-prohibited' => 'Net erlaubte Dateitype: $1.',
+'uploadlog' => 'Datei-Logbuch',
+'uploadlogpage' => 'Datei-Logbuch',
+'uploadlogpagetext' => 'Das ist das Logbuch von der hochgeladne Dateie, sieh ooch die [[Special:NewFiles|Galerie von neier Dateie]] für en visuell Üwerblick.',
+'filename' => 'Dateinoome',
+'filedesc' => 'Beschreibung',
+'fileuploadsummary' => 'Beschreibung/Quell:',
+'filereuploadsummary' => 'Dateiännrunge:',
+'filestatus' => 'Copyright-Status:',
+'filesource' => 'Quell:',
+'uploadedfiles' => 'Hochloode',
+'ignorewarning' => 'Warnung ignoriere und Datei speichre',
+'ignorewarnings' => 'Warnunge ignoriere',
+'minlength1' => 'Dateinoome müsse mindestens en Buchstoob lang sin.',
+'illegalfilename' => 'Der Dateinoome "$1" enthält minschtens en net erlaubtes Zeiche. Bittschön benenn die Datei um und versuch, se wieder erneit hochloode.',
+'filename-toolong' => 'Dateinoome deerfe net grösser wie 240 Bytes sin.',
+'badfilename' => 'Der Dateinoome woard in "$1" geännert.',
+'filetype-mime-mismatch' => 'Dateierweitrung ".$1" stimmt net mit dem MIME-Typ ($2) üwerein.',
+'filetype-badmime' => 'Dateie mit dem MIME-Typ "$1" deerfe net hochgeloode sin.',
+'filetype-bad-ie-mime' => 'Die Datei kann net hochgelood sin, weil der Internet Explorer se wie "$1" erkennt, wo en net erlaubter potentiell gefährlicher Dateityp ist.',
+'filetype-unwanted-type' => "'''\".\$1\"''' ist en unerwünschtes Dateiformat. Erlaubt {{PLURAL:\$3|ist das Dateiformat|sind die Dateiformate}}: \$2.",
+'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|ist en net erlaubter Dateityp|sind net erlaubte Dateitype}}.
+{{PLURAL:$3|Erlaubter Dateityp ist|Erlaubte Dateitype sind}} $2.',
+'filetype-missing' => 'Die hochzuloodende Datei hot ken Erweitrung (z. B. ".jpg").',
+'empty-file' => 'Die von dir üwertraoohte Datei hot ken Inhalt.',
+'file-too-large' => 'Die hochgeloodne Datei woor zu gross.',
+'filename-tooshort' => 'Der Dateinoome ist zu koorz.',
+'filetype-banned' => 'Die Dateiendung ist gesperrt.',
+'verification-error' => 'Die Datei hot die Dateiprüfung net bestand.',
+'hookaborted' => 'Der Versuch, die Änrung doorrichzuführe, woard von en Parsererweitrung abgebroch.',
+'illegal-filename' => 'Der Dateinoome ist net zulässich.',
+'overwrite' => 'Das Üwerschreibe von en schon voarhandne Datei ist net erlaubt.',
+'unknown-error' => 'En unbekannter Fehler ist uffgetret.',
+'tmp-create-error' => 'Temporäre Datei konnte net erstellt sin',
+'tmp-write-error' => 'Fehler beim Schreibe von der temporäre Datei',
+'large-file' => 'Die Dateigröss sollt noh Möchlichkeit $1 net üwerschreite. Die Datei ist $2 gross.',
+'largefileserver' => 'Die Datei ist grösser wie die vom Server eingestellte Maximalgröss.',
+'emptyfile' => 'Die hochgeloodene Datei ist leer. Der Grund kann en Tippfehler (verkeahrt geschrieb) im Dateinoome sin. Bitte kontrollier, ob du die Datei weerklich hochloode willst.',
+'windows-nonascii-filename' => 'Das Wiki unnerstützt ken Dateinoome, wo Sonderzeich enthalte.',
+'fileexists' => 'So en Noome Datei is schon voarhand do. Bittschön prüf <strong>[[:$1]]</strong>, soweit wie du dir net sicher bist, obs du se ännre möchst.
+[[$1|thumb]]',
+'filepageexists' => 'En Beschreibungsseit woard bereits wie <strong>[[:$1]]</strong> erstellt, das ist awer ken Datei mit dem Noome voarhand.
+Die ingegebne Beschreibung weard net uff die Beschreibungsseit üwernomm.
+Die Beschreibungsseit musst du noh dem Hochloode von der Datei noch manuell beoorbeite.
+[[$1|thumb]]',
+'fileexists-extension' => 'En Datei mit en ähnlich Noome ist schon voarhand: [[$2|thumb]]
+* Noome von der hochzuloodenden Datei: <strong>[[:$1]]</strong>
+* Noome von der schon voarhandnen Datei: <strong>[[:$2]]</strong>
+Bittschön wähl en anre Noome.',
+'fileexists-thumbnail-yes' => "Bei der Datei scheint das sich um en Bild verringerter Gröss ''(Miniatur)'' zu handle. [[$1|thumb]]
+Bittschön prüf die Datei <strong>[[:$1]]</strong>.
+Wenn es sich um das Bild in Originalgröss handelt, so braucht ken separates Voarschaubild hochgelood sin.",
+'file-thumbnail-no' => "Der Dateinoome beginnt mit <strong>$1</strong>. Das deitet auf en Bild von verringerter Gröss ''(Minitatur)'' hin.
+Bittschön prüf, obs du das Bild in voller Auflösung voarliehen host und lood das unner dem Originalnoome hoch.",
+'fileexists-forbidden' => 'Unner dem Nome existiert schon en Datei und die kann net üwerschrieb sin. Bittschön geh zurück und lood die Datei unner en annre Noome hoch. [[File:$1|thumb|center|$1]]',
+'fileexists-shared-forbidden' => 'Unner dem Noome existiert schon en Datei im zentral Medienarchiv.
+Wenns du die Datei trotzdem hochloode möchst, geh bittschön zurück und änner den Noome.
+[[File:$1|thumb|center|$1]]',
+'file-exists-duplicate' => 'Die Datei ist en Duplikat von der follichende {{PLURAL:$1|Datei|$1 Dateie}}:',
+'file-deleted-duplicate' => 'En mit der identische Datei ([[:$1]]) woard früher abgewischt. Sieh das Abwäsch-Logbuch ein, bevoar du die hochloode tust.',
+'file-deleted-duplicate-notitle' => 'En identische Datei woard kürzlich abgewischt und der Titel woard unnerdrückt.
+Du sollst jemand froche, wo die Möchlichkeit hot, die unnerdrückte Dateidate oonzusiehn, um die Situation voar dem erneite Hochlood zu üwerprüfe.',
+'uploadwarning' => 'Hochloodewarnung',
+'uploadwarning-text' => 'Bittschön änner unner die Dateibeschreibung und versuch das nochmo erneit.',
+'savefile' => 'Datei speichre',
+'uploadedimage' => 'lud „[[$1]]“ hoch',
+'overwroteimage' => 'Hot en nei Version von "[[$1]]" hochgelood',
+'uploaddisabled' => 'Hochloode deaktiviert',
+'copyuploaddisabled' => 'Das Hochloode von URLs ist deaktiviert',
+'uploadfromurl-queued' => 'Dein Hochloode (Upload) befindt sich jetzt in der Woorteschlang.',
+'uploaddisabledtext' => 'Das Hochloode von Dateie ist deaktiviert.',
+'php-uploaddisabledtext' => 'Das Hochloode von Dateie woard in PHP deaktiviert.
+Bittschön üwerprüf die <code>file_uploads</code>-Einstellung.',
+'uploadscripted' => 'Die Datei enthält HTML- orrer Scriptcode, wo irrtümlich von enem Webbrowser ausgeführt werre könnt.',
+'uploadscriptednamespace' => 'Die SVG-Datei enthält den ungültiche Noomeraum „$1“.',
+'uploadinvalidxml' => 'Das XML in der hochgeladne Datei konnt net geparst werre.',
+'uploadvirus' => 'Die Datei enthält en Virus! Details: $1',
+'uploadjava' => 'Dies ist ein ZIP-Datei, wo en CLASS-Datei von Java enthält.
+Das Hochloode von Java-Dateie ist net gestattet, weil sie die Umgehung von Sicherheitseinschränkunge ermöchliche könnte.',
+'upload-source' => 'Quelldatei',
+'sourcefilename' => 'Quelldatei:',
+'sourceurl' => 'Quell-URL:',
+'destfilename' => 'Zielnoome:',
+'upload-maxfilesize' => 'Maximal Dateigröss: $1',
+'upload-description' => 'Dateibeschreibung',
+'upload-options' => 'Hochloodeoptione',
+'watchthisupload' => 'Die Datei beobacht',
+'filewasdeleted' => 'En Datei mit dem Noome woard schon emol hochgelood und zwischichzeitlich wieder abgewischt. Bittschön prüf zuearst den Eintrooch im $1, bevoar du die Datei weerklich speichre tust.',
+'filename-bad-prefix' => "Der Dateinoome beginnt mit '''\"\$1\"'''. Das ist im allgemein der von en Digitalkamera voargebne Dateinoome und doher net seahr aussoognkräftig.
+Bittschön geb der Datei en Noome, wo den Inhalt besser beschreibt.",
+'upload-success-subj' => 'Erfollichreich hochgelood',
+'upload-success-msg' => 'Das Hochloode von [$2] woor erfollichreich. Die ist hier verfüchbar: [[:{{ns:file}}:$1]]',
+'upload-failure-subj' => 'Hochloodfehler',
+'upload-failure-msg' => 'Do hot es en Problem geb - mit deiner hochgeloodne Datei von [$2]:
+
+$1',
+'upload-warning-subj' => 'Hochloodewarnung',
+'upload-warning-msg' => 'Do woor en Problem beim Hochloode von [$2]. Bittschön zum [[Special:Upload/stash/$1|Hochloodformular]] zurückkehre, um das Problem zu behebe.',
+
+'upload-proto-error' => 'Falsches Protokoll',
+'upload-proto-error-text' => 'Die URL muss mit <code>http://</code> orrer <code>ftp://</code> beginne.',
+'upload-file-error' => 'Interner Fehler',
+'upload-file-error-text' => 'Bei der Erstellung en temporäre Datei uff dem Server ist en interner Fehler uffgetret.
+Bittschön informier en [[Special:ListUsers/sysop|Administratoar]].',
+'upload-misc-error' => 'Unbekannter Fehler beim Hochloode',
+'upload-misc-error-text' => 'Beim Hochloode ist en unbekannter Fehler uffgetret.
+Prüf die URL uff Fehler, den Online-Status von der Seite und versuch das wieder erneit.
+Wenn das Problem weiter besteht, informier en [[Special:ListUsers/sysop|Administratoar]].',
+'upload-too-many-redirects' => 'Die URL beinhaltete zu viele Weiterleitunge',
+'upload-unknown-size' => 'Unbekannte Gröss',
+'upload-http-error' => 'En HTTP-Fehler ist uffgetret: $1',
+'upload-copy-upload-invalid-domain' => 'Als Kopie hochloodbare Dateie sind üwer die Domain net verfüchbar.',
+
+# File backend
+'backend-fail-stream' => 'Die Datei $1 konnt net üwertrooht sin.',
+'backend-fail-backup' => 'Die Datei $1 konnt net gesichert sin.',
+'backend-fail-notexists' => 'Die Datei $1 ist net voarhand.',
+'backend-fail-hashes' => 'Die Strohwearte von der Datei könnte net zum Vergleich abgeruf sin.',
+'backend-fail-notsame' => 'Es ist schon en Datei $1 voarhand, wo net identisch ist.',
+'backend-fail-invalidpath' => '$1 ist ken gülticher Pad zum Speichre.',
+'backend-fail-delete' => 'Die Datei $1 konnt net abgewischt sin.',
+'backend-fail-describe' => 'Die Metadate für die Datei "$1" konnte net geännert sin.',
+'backend-fail-alreadyexists' => 'Die Seit $1 ist schon voarhand',
+'backend-fail-store' => 'Die Datei $1 konnt net unner $2 gespeichert sin.',
+'backend-fail-copy' => 'Die Datei $1 konnt net noh $2 kopiert sin.',
+'backend-fail-move' => 'Die Datei $1 konnt net noh $2 verschob sin.',
+'backend-fail-opentemp' => 'Die temporäer Datei konnt nrt geöffnet sin.',
+'backend-fail-writetemp' => 'Die temporäer Datei konnt net geschrieb sin.',
+'backend-fail-closetemp' => 'Die temporäer Datei konnt net geschloss sin.',
+'backend-fail-read' => 'Die Datei $1 konnt net geles sin.',
+'backend-fail-create' => 'Die Datei $1 konnt net gespeichert sin.',
+'backend-fail-maxsize' => 'Die Datei $1 konnt net gespeichert sin, weil die grösser wie {{PLURAL:$2|en Byte|$2 Bytes}} ist.',
+
+# Special:UploadStash
+'uploadstash' => 'Vorabspeichrung beim Hochloode',
+'uploadstash-clear' => 'Die voarab gespeicherte Dateie entferne',
+'uploadstash-nofiles' => 'Do sind ken voarab gespeicherte Dateie voarhand.',
+'uploadstash-badtoken' => 'Das Entferne der voarab gespeicherte Dateie woor erfollichlos, vielleicht weil deine Sitzungsdate abgeloof sind. Bittschön versuch das nochmo erneit.',
+'uploadstash-errclear' => 'Das Entferne der voarab gespeicherte Dateie woo erfollichlos.',
+'uploadstash-refresh' => 'List von der Dateie aktualisiere',
+'invalid-chunk-offset' => 'Ungülticher Startpunkt',
+
+# img_auth script messages
+'img-auth-accessdenied' => 'Zugriff verweichert',
+
+# HTTP errors
+'http-read-error' => 'HTTP-Lesefehler.',
+
+# Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
+'upload-curl-error6' => 'URL ist net erreichbar',
+'upload-curl-error28' => 'Zeitüwerschreitung beim Hochloode',
+
+'license' => 'Lizenz:',
+'license-header' => 'Lizenz',
+'nolicense' => 'Ken Voarauswahl',
+
+# Special:ListFiles
+'listfiles_search_for' => 'Such noh Datei:',
+'imgfile' => 'Datei',
+'listfiles' => 'Dateilist',
+'listfiles_thumb' => 'Voarschaubild',
+'listfiles_date' => 'Datum',
+'listfiles_name' => 'Noome',
+'listfiles_user' => 'Benutzer',
+'listfiles_size' => 'Gröss',
+'listfiles_description' => 'Beschreibung',
+'listfiles_count' => 'Versione',
+'listfiles-show-all' => 'Alte Bildversione einschliesse',
+'listfiles-latestversion' => 'Aktuelle Version',
+'listfiles-latestversion-yes' => 'Jo',
+'listfiles-latestversion-no' => 'Nee',
+
+# File description page
+'file-anchor-link' => 'Datei',
+'filehist' => 'Dateiversione',
+'filehist-help' => 'Klick uff en Zeitpunkt, um die Version zu loode.',
+'filehist-deleteall' => 'Alle Versione abwische',
+'filehist-deleteone' => 'Die Version abwische',
+'filehist-revert' => 'zurücksetze',
+'filehist-current' => 'aktuell',
+'filehist-datetime' => 'Version vom',
+'filehist-thumb' => 'Voarschaubild',
+'filehist-thumbtext' => 'Vorschaubild von der Version vom $2, $3 Uhr',
+'filehist-nothumb' => 'Ken Voarschaubild voarhand',
+'filehist-user' => 'Benutzer',
+'filehist-dimensions' => 'Moss',
+'filehist-filesize' => 'Dateigröss',
+'filehist-comment' => 'Kommentar',
+'filehist-missing' => 'Datei fehlt',
+'imagelinks' => 'Dateiverwennung',
+'linkstoimage' => 'Die {{PLURAL:$1|folliche Seit verwenndt|folliche $1 Seite verwenne}} die Datei:',
+'linkstoimage-more' => 'Meahr als {{PLURAL:$1|en Seit verlinkt|$1 Seite verlinke}} uff dies= Datei.
+Die folliche List zeicht nuar {{PLURAL:$1|den ersten Link|die earschte $1 Links}} uff die Datei.
+En [[Special:WhatLinksHere/$2|vollständiche List]] ist verfüchbar.',
+'nolinkstoimage' => 'Ken Seit benutzt die Datei.',
+'morelinkstoimage' => '[[Special:WhatLinksHere/$1|Weitre Links]] uff die Datei.',
+'linkstoimage-redirect' => '$1 (Dateiweiterleitung) $2',
+'duplicatesoffile' => 'Die {{PLURAL:$1|follichend Datei ist en Duplikat|follichende $1 Dateie sind Duplikate}} von der Datei ([[Special:FileDuplicateSearch/$2|weitre Detalhes]]):',
+'sharedupload' => 'Die Datei stammt aus $1 und därreft von annre Projekte verwendt sin.',
+'sharedupload-desc-here' => 'Die Datei stammt aus $1 und kann von annre Projekte verwennet sin. Die Beschreibung von dene [$2 Dateibeschreibungsseit] weard unne oongezeicht.',
+'filepage-nofile' => 'Do gebts ken Datei mit dem Noome voarhand.',
+'filepage-nofile-link' => 'Do gebts ken Datei mit dem Noome voarhand. Du kannst jedoch [$1 die Datei hochloode].',
+'uploadnewversion-linktext' => 'En neie Version von der Datei hochloode',
+'shared-repo-from' => 'aus $1',
+'shared-repo' => 'en gemeinsam benutzte Medienarchiv',
+'upload-disallowed-here' => 'Du kannst die Datei net üwerschreibe.',
+
+# File reversion
+'filerevert' => 'Zurücksetze von „$1“',
+'filerevert-legend' => 'Datei zurücksetze',
+'filerevert-intro' => "Du setzt die Datei '''[[Media:$1|$1]]''' uff die [$4 Version vom $2, $3 Uhr] zurück.",
+'filerevert-comment' => 'Grund:',
+'filerevert-defaultcomment' => 'Zurückgesetzt uff die Version vom $1, $2 Uhr',
+'filerevert-submit' => 'Zurücksetze',
+'filerevert-success' => "'''[[Media:$1|$1]]''' woard uff die [$4 Version vom $2, $3 Uhr] zurückgesetzt.",
+'filerevert-badversion' => 'Do gebts ken Version von der Datei zu dem oongebne Zeitpunkt.',
+
+# File deletion
+'filedelete' => 'Abwisch $1',
+'filedelete-legend' => 'Abwisch Datei',
+'filedelete-intro' => "Du abwischst die Datei '''\"[[Media:\$1|\$1]]\"''' inklusive ehrer Versionsgeschicht.",
+'filedelete-intro-old' => 'Du abwischst von der Datei \'\'\'"[[Media:$1|$1]]"\'\'\' die [$4 Version vom $2, $3 Uhr].',
+'filedelete-comment' => 'Grund:',
+'filedelete-submit' => 'Abwische',
+'filedelete-success' => "'''\"\$1\"''' woard abgewischt.",
+'filedelete-success-old' => 'Von der Datei \'\'\'"[[Media:$1|$1]]"\'\'\' woard die Version vom $2, $3 Uhr abgewischt.',
+'filedelete-nofile' => "'''\"\$1'''' ist net voarhand.",
+'filedelete-nofile-old' => "Do gebts von '''\"\$1\"''' ken archiviert Version mit den oongebne Attribute.",
+'filedelete-otherreason' => 'Annrer/ergänzender Grund:',
+'filedelete-reason-otherlist' => 'Annrer Grund',
+'filedelete-reason-dropdown' => '* Allgemeine Abwischgründe
+** Uarheberrechtsverletzung
+** Duplikat',
+'filedelete-edit-reasonlist' => 'Abwischgründe beoorbeite',
+'filedelete-maintenance' => 'Das Abwische und Wiederhearstelle von Dateie ist uffgrund von Woortungsoorbeite voarüwergehnd deaktiviert.',
+'filedelete-maintenance-title' => 'Die Datei kann net abgewischt sin.',
+
+# MIME search
+'mimesearch' => 'Such noh MIME-Typ',
+'mimetype' => 'MIME-Typ:',
+'download' => 'Herunnerloode',
+
+# Unwatched pages
+'unwatchedpages' => 'Net beobachtete Seite',
+
+# List redirects
+'listredirects' => 'Weiterleitunge',
+
+# List duplicated files special page
+'listduplicatedfiles' => 'List von der Dateie mit Duplikate',
+
+# Unused templates
+'unusedtemplates' => 'Unbenutzte Vorlooche',
+'unusedtemplateswlh' => 'Annre Links',
+
+# Random page
+'randompage' => 'Zufälliche Seite',
+
+# Random page in category
+'randomincategory' => 'Zufälliche Seit von en Kategorie',
+'randomincategory-selectcategory-submit' => 'Geh, los',
+
+# Random redirect
+'randomredirect' => 'Zufällich Weiterleitung',
+'randomredirect-nopages' => 'Im Noomeraum „$1“ sind ken Weiterleitunge voarhand.',
+
+# Statistics
+'statistics' => 'Statistik',
+'statistics-header-pages' => 'Seitestatistik',
+'statistics-header-edits' => 'Bearbeitungsstatistik',
+'statistics-header-views' => 'Seitenuffrufstatistik',
+'statistics-header-users' => 'Benutzerstatistik',
+'statistics-header-hooks' => 'Annre Statistike',
+'statistics-articles' => 'Inhaltsseite',
+'statistics-pages' => 'Seite',
+'statistics-pages-desc' => 'Alle Seite in dem Wiki, inklusive Diskussionsseite, Weiterleitunge und so weiter',
+'statistics-files' => 'Hochgeloodne Dateie',
+'statistics-edits' => 'Seitebeoorbeitunge',
+'statistics-edits-average' => 'Beoorbeitunge pro Seit im Doorrichschnitt',
+'statistics-views-total' => 'Seitenuffrufe gesamt',
+'statistics-views-peredit' => 'Jede Beoorbeitung ehre Seiteuffrufe',
+'statistics-users' => 'Registrierte [[Special:ListUsers|Benutzer]]',
+'statistics-users-active' => 'Aktive Benutzer',
+'statistics-users-active-desc' => 'Benutzer mit Beoorbeitunge {{PLURAL:$1|während (im verloof von) der letzte 24 Stunde|während (im verloof von) der vergangne $1 Tooche}}',
+'statistics-mostpopular' => 'Meistbesuchte Seite',
+
+'pageswithprop' => 'Seite mit en Seiteneichenschaft',
+'pageswithprop-legend' => 'Seite mit en Seiteeichenschaft',
+'pageswithprop-text' => 'Die Spezialseit tut Seite ufflistiere, wo en bestimmte Seiteeichenschaft verwenne.',
+'pageswithprop-prop' => 'Eichenschaftsnoome:',
+'pageswithprop-submit' => 'Geh, los',
+'pageswithprop-prophidden-long' => 'Langtexteichenschaftsweart versteckt ($1)',
+'pageswithprop-prophidden-binary' => 'Binäreichenschaftsweart versteckt ($1)',
+
+'doubleredirects' => 'Doppelte Weiterleitunge',
+'double-redirect-fixer' => 'RedirectBot',
+
+'brokenredirects' => 'Defekte Weiterleitunge',
+'brokenredirectstext' => 'Die Spezialseit listiert Weiterleitung uff net existierende Seite uff.',
+'brokenredirects-edit' => 'Beoorbeite',
+'brokenredirects-delete' => 'abwische',
+
+'withoutinterwiki' => 'Net zu annre Sproche verlinkende Seite',
+'withoutinterwiki-summary' => 'Die follichende Seite verlinke net uff annre Sprochversione.',
+'withoutinterwiki-legend' => 'Präfix',
+'withoutinterwiki-submit' => 'Zeich',
+
+'fewestrevisions' => 'Seite mit den wenichste Versione',
+
+# Miscellaneous special pages
+'nbytes' => '$1 {{PLURAL:$1|Byte|Bytes}}',
+'ncategories' => '$1 {{PLURAL:$1|Kategorie|Kategoriee}}',
+'ninterwikis' => '{{PLURAL:$1|En Interwikilink|$1 Interwikilinks}}',
+'nlinks' => '{{PLURAL:$1|1 Link|$1 Links}}',
+'nmembers' => '{{PLURAL:$1|1 Eintrooch|$1 Einträche}}',
+'nmemberschanged' => '$1 → {{PLURAL:$2|En Mitglied|$2 Mitglieder}}',
+'nrevisions' => '{{PLURAL:$1|1 Beoorbeitung|$1 Beoorbeitunge}}',
+'nviews' => '{{PLURAL:$1|1 Abfroch|$1 Abfroche}}',
+'nimagelinks' => 'Verwendt uff {{PLURAL:$1|en Seit|$1 Seite}}',
+'ntransclusions' => 'Verwendt uff {{PLURAL:$1|en Seit|$1 Seite}}',
+'specialpage-empty' => 'Do sind aktuell ken zutreffende Einträche voarhand.',
+'lonelypages' => 'Verwaist Seite',
+'lonelypagestext' => 'Die follichenden Seite werre net eingebund orrer das weard net uff sie in {{SITENAME}} verwies.',
+'uncategorizedpages' => 'Net kategorisierte Seite',
+'uncategorizedcategories' => 'Net kategorisierte Kategorie',
+'uncategorizedimages' => 'Net kategorisierte Dateie',
+'uncategorizedtemplates' => 'Net kategorisierte Vorlage',
+'unusedcategories' => 'Verwaiste Kategorie',
+'unusedimages' => 'Verwaiste Dateie',
+'popularpages' => 'Beliebteste Seite',
+'wantedcategories' => 'Gewünschte Kategorie',
+'wantedpages' => 'Gewünschte Seite',
+'wantedpages-badtitle' => 'Ungülticher Titel im Ergebnis: $1',
+'wantedfiles' => 'Gewünschte Dateie',
+'wantedfiletext-cat' => 'Die follichende Dateie werre verwendt, sind jedoch net voarhand. Voarhandne Dateie aus fremde Repositorie könne dennoch hier uffgelistet sin und werre <del>doorrichgestrich</del> für se siehn dogestellt. Zusätzlich werre Seite, wo net voarhandne Dateie enthalle, in die [[:$1]] eingeordnet.',
+'wantedfiletext-nocat' => 'Die follichende Dateie werre verwendt, sind jedoch net voarhand. Voarhandne Dateie aus fremde Repositorie könne dennoch hier uffgelistet sin und werre <del>doorrichgestrich</del> dargestellt.',
+'wantedtemplates' => 'Gewünschte Voarlooche',
+'mostlinked' => 'Seite mit den meiste Links',
+'mostlinkedcategories' => 'Meistbenutzte Kategorie',
+'mostlinkedtemplates' => 'Meistbenutzte Voarlooche',
+'mostcategories' => 'Seiten mit den meiste Kategorie',
+'mostimages' => 'Meistbenutzte Dateie',
+'mostinterwikis' => 'Seite mit den meiste Interwikilinks',
+'mostrevisions' => 'Seite mit den meiste Versione',
+'prefixindex' => 'All Seite (mit Präfix)',
+'prefixindex-namespace' => 'Alle Seite mit Präfix (Nameraum $1)',
+'prefixindex-strip' => 'Präfix in der Liste abschneide',
+'shortpages' => 'Koorze Seite',
+'longpages' => 'Lange Seite',
+'deadendpages' => 'Net verlinkende Seite',
+'deadendpagestext' => 'Die follichende Seite verweise net uff annre Seite von {{SITENAME}}.',
+'protectedpages' => 'Geschützte Seite',
+'protectedpages-indef' => 'Nuar unbeschränkt geschützte Seite zeiche',
+'protectedpages-cascade' => 'Nuar Seite mit Kaskadeschutz',
+'protectedpages-noredirect' => 'Weiterleitunge ausblende',
+'protectedpagesempty' => 'Aktuell sind ken Seite mit den Parameter geschützt.',
+'protectedpages-timestamp' => 'Zeitstempel',
+'protectedpages-page' => 'Seit',
+'protectedpages-expiry' => 'Gültich bis',
+'protectedpages-performer' => 'Geschützt von',
+'protectedpages-params' => 'Schutzparameter',
+'protectedpages-reason' => 'Grund',
+'protectedpages-unknown-timestamp' => 'Unbekannt',
+'protectedpages-unknown-performer' => 'Unbekannter Benutzer',
+'protectedtitles' => 'Geschützte Seitenoome',
+'protectedtitlesempty' => 'Zurzeit sind mit den oongebne Parameter ken Seite zur Neierstellung gesperrt.',
+'listusers' => 'Benutzerverzeichnis',
+'listusers-editsonly' => 'Zeich nuar Benutzer mit Beiträche',
+'listusers-creationsort' => 'Noh Erstelldatum sortiere',
+'listusers-desc' => 'In absteichender Reihenfolche sortiere',
+'usereditcount' => '$1 {{PLURAL:$1|Beoorbeitung|Beoorbeitunge}}',
+'usercreated' => '{{GENDER:$3|Erstellt}} am $1 um $2 Uhr',
+'newpages' => 'Neie Seite',
+'newpages-username' => 'Benutzernoome:',
+'ancientpages' => 'Seit längrem unbeoorbeitete Seite',
+'move' => 'Verschiebe',
+'movethispage' => 'Seit verschiebe',
+'unusedimagestext' => 'Bittschön beacht, dass anre Webseite en Datei mit en direkte URL verlinke könne. Die könnte doher hier uffgelistet sin, obwohl die in aktiver Verwendung ist.',
+'unusedcategoriestext' => 'Die Spezialseit zeicht all Kategorie, wo leer sind, also sellebst ken Kategorie orrer Seite enthalle.',
+'notargettitle' => 'Ken Seit oongeb',
+'notargettext' => 'Du host net oongeb, uff was für Seit die Funktion oongewendt werre soll.',
+'nopagetitle' => 'Seit net voarhand',
+'nopagetext' => 'Die oongebne Seit ist net vorhand.',
+'pager-newer-n' => '{{PLURAL:$1|nächster|nächste $1}}',
+'pager-older-n' => '{{PLURAL:$1|voarhericher|voarheriche $1}}',
+'suppress' => 'Oversight (Üwerwächtung)',
+'querypage-disabled' => 'Die Spezialseit woard aus Gründe von der Leistungserhaltung deaktiviert.',
+
+# Book sources
+'booksources' => 'ISBN-Suche',
+'booksources-search-legend' => 'Such noh Bezugsquelle für Bücher',
+'booksources-go' => 'Suche',
+'booksources-text' => 'Dies ist en List mit Links zu Internetseite, wo neie und gebrauchte Bücher verkoofe. Dort kann das ooch weitre Informationen üwer die Bücher gebe. {{SITENAME}} ist mit kenem von der Oonbieter geschäftlich verbünd.',
+'booksources-invalid-isbn' => 'Vermutlich ist die ISBN ungültich.
+Bittschön prüf, ob die korrekt von der Quell üwertroohr woard.',
+
+# Special:Log
+'specialloguserlabel' => 'Ausführender Benutzer:',
+'speciallogtitlelabel' => 'Ziel (Titel orrer Benutzer):',
+'log' => 'Logbücher',
+'all-logs-page' => 'Alle öffentliche Logbücher',
+'alllogstext' => 'Das ist die kombinierte Oonzeich von all in {{SITENAME}} geführte Logbücher.
+Die Ausgäb kann doorrich die Auswahl von der Logbuchtyp, von der Benutzer orrer der Seitetitel ingeschränkt sin (Gross-/Klenschreibung muss beachtet sin).',
+'logempty' => 'Ken passende Einträch.',
+'log-title-wildcard' => 'Titel beginnt mit …',
+'showhideselectedlogentries' => 'Ausgewählte Logbucheinträch oonzeiche/verstecke',
+
+# Special:AllPages
+'allpages' => 'All Seite',
+'alphaindexline' => '$1 bis $2',
+'nextpage' => 'Nächste Seit ($1)',
+'prevpage' => 'Vorhrich Seit ($1)',
+'allpagesfrom' => 'Seite oonzeiche ab:',
+'allpagesto' => 'Seite oonzeiche bis:',
+'allarticles' => 'Alle Seite',
+'allinnamespace' => 'Alle Seite (Noomeraum: $1)',
+'allpagessubmit' => 'Oonwenne',
+'allpagesprefix' => 'Seite oonzeiche mit Präfix:',
+'allpagesbadtitle' => 'Der ingebne Seitenoome ist ungültich: Der hot entweder en voarangestelltes Sproch-, en Interwiki-Kürzel orrer enthält en orrer mehrre Zeiche, wo in Seitenoome net dürfe verwendt sin.',
+'allpages-bad-ns' => 'Der Noomeraum "$1" ist in {{SITENAME}} net voarhand.',
+'allpages-hide-redirects' => 'Weiterleitunge ausblende',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Du siehst die gecachte Version (Englisch: "cached version") von der Seit, wo bis zu $1 alt sin kann.',
+'cachedspecial-viewing-cached-ts' => 'Du siehst die gecachte Version (Englisch: "cached version") von der Seit, die möglicherweis net aktuell ist.',
+'cachedspecial-refresh-now' => 'Aktuelle Version oonsiehn.',
+
+# Special:Categories
+'categories' => 'Kategoriee',
+'special-categories-sort-count' => 'Sortierung noh Oonzoohl',
+'special-categories-sort-abc' => 'Sortierung noh Alphabet',
+
+# Special:DeletedContributions
+'deletedcontributions' => 'Abgewischte Beiträch',
+'deletedcontributions-title' => 'Abgewischte Beiträch',
+'sp-deletedcontributions-contribs' => 'Benutzerbeiträche',
+
+# Special:LinkSearch
+'linksearch' => 'Weblinksuch',
+'linksearch-pat' => 'Suchmuster:',
+'linksearch-ns' => 'Noomeraum:',
+'linksearch-ok' => 'Suche',
+'linksearch-line' => '$1 ist verlinkt von $2',
+
+# Special:ListUsers
+'listusersfrom' => 'Zeich Benutzer ab:',
+'listusers-submit' => 'Zeich',
+'listusers-noresult' => 'Ken Benutzer gefund.',
+'listusers-blocked' => '(gesperrt)',
+
+# Special:ActiveUsers
+'activeusers' => 'Aktive Benutzer',
+'activeusers-from' => 'Zeich Benutzer ab:',
+'activeusers-hidebots' => 'Bots ausblende',
+'activeusers-hidesysops' => 'Administratore ausblende (verstecke)',
+'activeusers-noresult' => 'Kene Benutzer gefund.',
+
+# Special:ListGroupRights
+'listgrouprights' => 'Benutzergrupperechte',
+'listgrouprights-group' => 'Grupp:',
+'listgrouprights-rights' => 'Rechte',
+'listgrouprights-helppage' => 'Help:Grupperechte',
+'listgrouprights-members' => '(Mitgliederlist)',
+'listgrouprights-addgroup' => 'Benutzer zu {{PLURAL:$2|der Grupp|die Gruppe}} hinzufügen: $1',
+'listgrouprights-removegroup' => 'Benutzer aus {{PLURAL:$2|die Grupp|die Gruppe}} entferne: $1',
+'listgrouprights-addgroup-all' => 'Benutzer zu alle Gruppe hinzufüche',
+'listgrouprights-removegroup-all' => 'Benutzer aus alle Gruppe entferne',
+'listgrouprights-addgroup-self-all' => 'Kann alle Gruppe zum eichne Konto hinzufüche',
+'listgrouprights-removegroup-self-all' => 'Kann alle Gruppe vom eichne Konto entferne (removiere)',
+
+# Email user
+'mailnologin' => 'Fehler beim E-Mail-Versand',
+'emailuser' => 'E-Mail an den Benutzer',
+'emailuser-title-notarget' => 'E-Mail an Benutzer',
+'emailpage' => 'E-Mail an Benutzer',
+'usermailererror' => 'Das E-Mail-Objekt gab en Fehler zurück:',
+'defemailsubject' => '{{SITENAME}} – E-Mail von Benutzer "$1"',
+'usermaildisabled' => 'E-Mail-Empfang deaktiviert',
+'usermaildisabledtext' => 'Du kannst in dem Wiki keh E-Mails an annre Benutzer sende',
+'noemailtitle' => 'Ken E-Mail-Adress',
+'noemailtext' => 'Der Benutzer hot ken gültiche E-Mail-Adress oongeb.',
+'nowikiemailtitle' => 'E-Mail-Versand net möchlich',
+'nowikiemailtext' => 'Der Benutzer möcht ken E-Mails von annre Benutzer erhalle.',
+'emailnotarget' => 'Nicht vorhandner orrer ungülticher Benutzernoome für den Empfang von en E-Mail.',
+'emailtarget' => 'Benutzernoome von der Empfänger rengebe',
+'emailusername' => 'Benutzernoome:',
+'emailusernamesubmit' => 'Weiter',
+'email-legend' => 'E-Mail an en annre {{SITENAME}}-Benutzer sende',
+'emailfrom' => 'Von:',
+'emailto' => 'An:',
+'emailsubject' => 'Betreff:',
+'emailmessage' => 'Nachricht:',
+'emailsend' => 'Sende',
+'emailccme' => 'Sende en Kopie von der E-Mail an mich',
+'emailccsubject' => 'Kopie von deiner Nachricht an $1: $2',
+'emailsent' => 'E-Mail verschickt',
+'emailsenttext' => 'Dein E-Mail woard verschickt.',
+'emailuserfooter' => 'Die E-Mail woard von {{SITENAME}}-Benutzer "$1" an "$2" gesendt.',
+
+# User Messenger
+'usermessage-summary' => 'Systemnachricht gespeichert.',
+'usermessage-editor' => 'System-Messenger',
+
+# Watchlist
+'watchlist' => 'Beobachtungslist',
+'mywatchlist' => 'Beobachtungslist',
+'watchlistfor2' => 'Von $1 $2',
+'nowatchlist' => 'Do befind sich ken Einträch uff dein Beobachtungslist.',
+'watchlistanontext' => 'Du musst dich $1, um dein Beobachtungslist siehn orrer Einträch uff ihr beoorbeiteno könne.',
+'watchnologin' => 'Net oongemeldt',
+'watchnologintext' => 'Du musst [[Special:UserLogin|oongemeldt]] sin, um dein Beobachtungslist beoorbeite könne.',
+'addwatch' => 'Zur Beobachtungslist hinzufüche',
+'watch' => 'Beobachte',
+'watchthispage' => 'Die Seit beobachte',
+'unwatch' => 'Net mehr beobachte',
+'unwatchthispage' => 'Net meahr beobachte',
+'notanarticle' => 'Ken Seit',
+'notvisiblerev' => 'Versionur woard abgewischt',
+'watchlist-details' => 'Du beobachtest {{PLURAL:$1|en Seit|$1 Seite}}, ohne dass Diskussionsseit gezählt werre.',
+'wlheader-enotif' => 'Der E-Mail-Benachrichtigungsdienst ist aktiviert.',
+'wlheader-showupdated' => "Seite mit noch net gesiehne Ännrunge werre'''fett''' dorgestellt.",
+'watchmethod-recent' => 'Üwerprüfung von der letzte Beoorbeitungen für die Beobachtungslist (mit observierte Seite)',
+'watchmethod-list' => 'Üwerprüfung von der Beobachtungslist noh letzte Beoorbeitunge',
+'wlshowlast' => 'Zeich die Ännrunge von der letzte $1 Stunde, $2 Tooch orrer $3.',
+'watchlist-options' => 'Oonzeichoptione',
+
+# Displayed when you click the "watch" button and it is in the process of watching
+'watching' => 'Beobachte …',
+'unwatching' => 'Netmehr beobachte …',
+
+'enotif_reset' => 'Alle Seite wie besucht markiere',
+'enotif_impersonal_salutation' => '{{SITENAME}}-Benutzer',
+'enotif_subject_deleted' => '{{SITENAME}}-Seit $1 woard von {{GENDER:$2|$2}} abgewischt',
+'enotif_subject_created' => '{{SITENAME}}-Seit $1 woard von {{GENDER:$2|$2}} erstellt',
+'enotif_subject_moved' => '{{SITENAME}}-Seit $1 woard von {{GENDER:$2|$2}} verschob',
+'enotif_subject_restored' => '{{SITENAME}}-Seit $1 woard von {{GENDER:$2|$2}} wiederheargestellt',
+'enotif_subject_changed' => '{{SITENAME}}-Seit $1 woard von {{GENDER:$2|$2}} geännert',
+'enotif_body_intro_deleted' => 'Die {{SITENAME}}-Seit $1 woard am $PAGEEDITDATE von {{GENDER:$2|$2}} abgewischt. Sieh $3.',
+'enotif_body_intro_created' => 'Die {{SITENAME}}-Seit $1 woard am $PAGEEDITDATE von {{GENDER:$2|$2}} erstellt. Sieh $3 für die aktuelle Version.',
+'enotif_anon_editor' => 'Anonymer Benutzer $1',
+
+# Delete
+'deletepage' => 'Seite abwische',
+'confirm' => 'Bestätich',
+'excontent' => 'Inhalt woor: "$1"',
+'exblank' => 'Seit woor leer',
+'delete-confirm' => 'Abwische von „$1“',
+'delete-legend' => 'Abwische',
+'actioncomplete' => 'Aktion beennet',
+'actionfailed' => 'Aktion fehlgeschloohn',
+'dellogpage' => 'Lösch-Logbuch',
+'deletionlog' => 'Abwäsch-Logbuch',
+'reverted' => 'Uff en alte Version zurückgesetzt',
+'deletecomment' => 'Grund:',
+'deleteotherreason' => 'Annrer/ergänzender Grund:',
+'deletereasonotherlist' => 'Annrer Grund',
+'delete-edit-reasonlist' => 'Abwischgründe beoorbeite',
+
+# Rollback
+'rollback' => 'Zurücksetze von der Ännrunge',
+'rollback_short' => 'Zurücksetze',
+'rollbacklink' => 'Zurücksetze',
+'rollbackfailed' => 'Zurücksetze gescheitert',
+
+# Edit tokens
+'sessionfailure-title' => 'Sitzungsfehler',
+
+# Protect
+'protectlogpage' => 'Seiteschutz-Logbuch',
+'protectedarticle' => 'geschützt „[[$1]]“',
+'protect-badnamespace-title' => 'Net-schützbarer Noomeraum',
+'protect-badnamespace-text' => 'Seite von dem Noomeraums könne net geschützt sin.',
+'protect-norestrictiontypes-text' => 'Die Seit kann net geschützt sin, weil ken Beschränkungstype verfüchbar sind.',
+'protect-norestrictiontypes-title' => 'Seite net schützbar',
+'protect-legend' => 'Seiteschutzstatus ännre',
+'protectcomment' => 'Grund:',
+'protectexpiry' => 'Sperrdauer:',
+'protect_expiry_invalid' => 'Die ingebne Dauer ist ungültich.',
+'protect_expiry_old' => 'Die Sperrzeit lieht in der Vergangheit.',
+'protect-unchain-permissions' => 'Separate Sperroptione aktiviere',
+'protect-text' => 'Hier kannst du den Schutzstatus der Seite "$1" insiehn und ännre.',
+'protect-default' => 'Alle Benutzer',
+'protect-level-sysop' => 'Nuar Administratore erlaube',
+'protect-summary-cascade' => 'kaskadierend',
+'protect-expiring' => 'bis $2, $3 Uhr (UTC)',
+'protect-expiring-local' => 'bis $1',
+'protect-expiry-indefinite' => 'unbeschränkt',
+'protect-cascade' => 'Kaskadierende Sperre – alle in die Seite eingebundne Voarlooche werre ewefalls gesperrt.',
+'protect-cantedit' => 'Du kannst die Sperr von der Seit net ännre, weil du ken Berechtichung zum Beoorbeite von der Seit host.',
+'protect-othertime' => 'Anner Sperrdauer:',
+'protect-othertime-op' => 'anner Sperrdauer',
+'protect-existing-expiry' => 'Aktuelles Seiteschutzend: $2, $3 Uhr',
+'protect-otherreason' => 'Annre/ergänzender Grund:',
+'protect-otherreason-op' => 'Annrer Grund',
+'restriction-type' => 'Schutzstatus:',
+'restriction-level' => 'Schutzhöch:',
+'minimum-size' => 'Mindestgröss',
+'maximum-size' => 'Maximalgröss:',
+'pagesize' => '(Bytes)',
+
+# Restrictions (nouns)
+'restriction-edit' => 'Beoorbeite',
+'restriction-move' => 'Verschiebe',
+'restriction-create' => 'Erstell',
+'restriction-upload' => 'Hochlood',
+
+# Restriction levels
+'restriction-level-sysop' => 'geschützt (nuar Administratore)',
+'restriction-level-autoconfirmed' => 'geschützt (nuar oongemeldete, net neie Benutzer)',
+'restriction-level-all' => 'alle',
+
+# Undelete
+'undelete' => 'Abgewischte Seite oonzeiche',
+'undeletepage' => 'Abgewischte Seite oonzeichr und wiederhearstelle',
+'viewdeletedpage' => 'Abgewischte Seite oonzeiche',
+'undelete-fieldset-title' => 'Wiederhearstelle',
+'undelete-nodiff' => 'Ken voarhergehend Version voarhand.',
+'undeletebtn' => 'Wiederherstelle',
+'undeletelink' => 'oonsiehn/wiederherstelle',
+'undeleteviewlink' => 'oongucke',
+'undeleteinvert' => 'Auswahl umkehre',
+'undeletecomment' => 'Grund:',
+'cannotundelete' => 'Die Wiederhearstellung ist fehlgeschlooht:
+$1',
+'undelete-search-title' => 'Noh abgewischte Seite suche',
+'undelete-search-box' => 'Noh abgewischte Seite suche',
+'undelete-search-prefix' => 'Suchbegriff (Wortoonfang ohne Wildcards):',
+'undelete-search-submit' => 'Such',
+'undelete-no-results' => 'Do woard im Archiv ken zum Suchbegriff passend Seit gefund.',
+'undelete-error' => 'Beim Wiederhearstelle von der Seit ist en Fehler uffgetret.',
+'undelete-error-short' => 'Fehler beim Wiederhearstell von der Datei $1',
+'undelete-show-file-submit' => 'Jo',
+
+# Namespace form on various pages
+'namespace' => 'Noomeraum:',
+'invert' => 'Auswoohl umkehre',
+'namespace_association' => 'Zugehöricher Noomeraum',
+'blanknamespace' => '(Seite)',
+
+# Contributions
+'contributions' => '{{GENDER:$1|Benutzerbeiträche}}',
+'contributions-title' => 'Benutzerbeiträche von „$1“',
+'mycontris' => 'Beiträche',
+'contribsub2' => 'Von {{GENDER:$3|$1}} ($2)',
+'uctop' => '(aktuell)',
+'month' => 'und Monat:',
+'year' => 'bis Joahr (und früher):',
+
+'sp-contributions-newbies' => 'Zeich nuar Beiträche von neier Benutzer',
+'sp-contributions-newbies-sub' => 'Von neie Benutzer',
+'sp-contributions-newbies-title' => 'Benutzerbeiträch von neie Benutzer',
+'sp-contributions-blocklog' => 'Sperr-Logbuch',
+'sp-contributions-deleted' => 'Abgewischt Beiträch',
+'sp-contributions-uploads' => 'Hochgeloodne Dateie',
+'sp-contributions-logs' => 'Logbücher',
+'sp-contributions-talk' => 'Diskussion',
+'sp-contributions-userrights' => 'Benutzerrechteverwaltung',
+'sp-contributions-search' => 'Such noh Benutzerbeiträche',
+'sp-contributions-suppresslog' => 'Unnerdrückte Benutzerbeiträch',
+'sp-contributions-username' => 'IP-Adress orrer Benutzernoome:',
+'sp-contributions-toponly' => 'Nuar aktuelle Versione zeiche',
+'sp-contributions-submit' => 'Such',
+
+# What links here
+'whatlinkshere' => 'Links uff die Seit',
+'whatlinkshere-title' => 'Seite, die uff "$1" verlinke',
+'whatlinkshere-page' => 'Seit:',
+'linkshere' => "Die follichende Seite verlinke uff '''\"[[:\$1]]\"''':",
+'nolinkshere' => "Ken Seit verlinkt uff '''„[[:$1]]“'''.",
+'isredirect' => 'Weiterleitungsseit',
+'istemplate' => 'Voarlooche-einbinnunge (transclusões)',
+'isimage' => 'Dateilink',
+'whatlinkshere-prev' => '{{PLURAL:$1|voarhericher|voarheriche $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|nächster|nächste $1}}',
+'whatlinkshere-links' => '← Links',
+'whatlinkshere-hideredirs' => 'Weiterleitunge $1',
+'whatlinkshere-hidetrans' => 'Voarlooche-einbinnunge (transclusões) $1',
+'whatlinkshere-hidelinks' => 'Links $1',
+'whatlinkshere-hideimages' => 'Dateilinks $1',
+'whatlinkshere-filters' => 'Filter',
+
+# Block/unblock
+'autoblockid' => 'Automatisch Sperrung #$1',
+'block' => 'Benutzer sperre',
+'unblock' => 'Benutzer frei mache',
+'blockip' => 'IP-Adress/Benutzer sperre',
+'blockip-legend' => 'IP-Adress/Benutzer sperre',
+'ipadressorusername' => 'IP-Adress orrer Benutzernoome:',
+'ipbexpiry' => 'Sperrdauer:',
+'ipbreason' => 'Grund:',
+'ipbcreateaccount' => 'Erstellung von Benutzerkonte verhinnre',
+'ipbsubmit' => 'IP-Adress/Benutzer sperre',
+'ipbother' => 'Annr Dauer:',
+'ipboptions' => '2 Stunne:2 hours,1 Tooch:1 day,3 Tooch:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Monat:1 month,3 Monate:3 months,6 Monate:6 months,1 Joahr:1 year,unbeschränkt:infinite',
+'ipb-confirm' => 'Sperrung bestätiche',
+'badipaddress' => 'Die IP-Adress hot en falsches Format.',
+'blockipsuccesssub' => 'Die Sperrung woor erfollichreich.',
+'ipb-edit-dropdown' => 'Sperrgründe beoorbeite',
+'ipb-unblock-addr' => '„$1“ freigebe (mache)',
+'ipb-blocklist' => 'Alle aktuelle Sperre oonzeiche',
+'ipb-blocklist-contribs' => 'Benutzerbeiträche von "$1"',
+'unblockip' => 'Benutzer frei mache',
+'ipusubmit' => 'Freigewe (frei mache)',
+'unblocked' => '[[User:$1|$1]] woard freigeb (gemacht)',
+'unblocked-range' => 'Sperr für $1 woard uffgehob',
+'blocklist' => 'Gesperrte Benutzer',
+'ipblocklist' => 'Gesperrte Benutzer',
+'ipblocklist-legend' => 'Such noh en gesperrte Benutzer',
+'blocklist-userblocks' => 'Benutzersperre ausblende (verstecke)',
+'blocklist-tempblocks' => 'Befristete Sperre ausblende (verstecke)',
+'blocklist-addressblocks' => 'Sperre einzelner IP-Adresse ausblende (verstecke)',
+'blocklist-rangeblocks' => 'Bereichssperre ausblende (verstecke)',
+'blocklist-timestamp' => 'Zeitstempel',
+'blocklist-target' => 'Ziel',
+'blocklist-expiry' => 'Sperrdauer bis',
+'blocklist-by' => 'Gesperrt von',
+'blocklist-params' => 'Sperrparameter',
+'blocklist-reason' => 'Grund',
+'ipblocklist-submit' => 'Suche',
+'ipblocklist-localblock' => 'Lokal Sperre',
+'ipblocklist-otherblocks' => 'Annrer {{PLURAL:$1|Sperr|Sperre}}',
+'infiniteblock' => 'unbegrenzt',
+'expiringblock' => 'tut enne am $1 um $2 Uhr',
+'anononlyblock' => 'nuar Anonyme',
+'noautoblockblock' => 'Autoblock deaktiviert',
+'createaccountblock' => 'Erstellung von Benutzerkonte gesperrt',
+'emailblock' => 'E-Mail-Versand gesperrt',
+'blocklist-nousertalk' => 'därref eichne Diskussionsseit net beoorbeite',
+'ipblocklist-empty' => 'Die List enthält ken Einträche.',
+'ipblocklist-no-results' => 'Die gesuchte IP-Adress/der Benutzernoome ist net gesperrt.',
+'blocklink' => 'Sperre',
+'unblocklink' => 'Freigewe',
+'change-blocklink' => 'Sperre ännre',
+'contribslink' => 'Beiträche',
+'emaillink' => 'E-Mail sende',
+'blocklogpage' => 'Benutzersperr-Logbuch',
+'blocklogentry' => 'sperrte „[[$1]]“ für den Zeitraum: $2 $3',
+'unblocklogentry' => 'hob die Sperr von "$1" uff',
+'block-log-flags-anononly' => 'nuar Anonyme',
+'block-log-flags-nocreate' => 'Erstellung von Benutzerkonte gesperrt',
+'block-log-flags-noautoblock' => 'Autoblock deaktiviert',
+'block-log-flags-noemail' => 'E-Mail-Versand gesperrt',
+'block-log-flags-nousertalk' => 'därref eichne Diskussionsseit net beoorbeite',
+'block-log-flags-angry-autoblock' => 'erweiterter Autoblock aktiviert',
+'block-log-flags-hiddenname' => 'Benutzernoome versteckt',
+'range_block_disabled' => 'Die Möchlichkeit, ganze Adressräume zu sperre, ist net aktiviert.',
+'ipb_expiry_invalid' => 'Die eingebne Dauer ist ungültich.',
+'ipb_expiry_temp' => 'Benutzernoome-Sperre mit der Verstecke-Option müsse permanent sin.',
+'ip_range_invalid' => 'Ungülticher IP-Adressbereich.',
+'proxyblocker' => 'Proxy blocker',
+
+# Developer tools
+'lockdb' => 'Datebank sperre',
+'unlockdb' => 'Datebank freigebe (mache)',
+'lockbtn' => 'Datebank sperre',
+'unlockbtn' => 'Datebank freigebe (mache)',
+
+# Move page
+'move-page' => 'Verschiebe von "$1"',
+'move-page-legend' => 'Seit verschiebe',
+'movearticle' => 'Seit verschiebe:',
+'newtitle' => 'Ziel (zu neie Titel):',
+'move-watch' => 'Quell- und Zielseit beobachte',
+'movepagebtn' => 'Seit verschiebe',
+'pagemovedsub' => 'Verschiebung erfollichreich',
+'movepage-moved-redirect' => 'En Weiterleitung woard erstellt.',
+'movepage-moved-noredirect' => 'Die Erstellung von en Weiterleitung woard unnerdrückt.',
+'articleexists' => 'Unner dem Noome existiert schon en Seit. Bittschön wähl en annre Noome.',
+'movelogpage' => 'Verschiebungs-Logbuch',
+'movereason' => 'Grund:',
+'revertmove' => 'zurück verschiebe',
+'delete_and_move' => 'Abwische und verschiebe',
+'delete_and_move_confirm' => 'Jo, Seit abwische',
+'immobile-source-page' => 'Die Seit ist net verschiebbar.',
+'immobile-target-page' => 'Es kann net uff die Zielseit verschob sin.',
+'move-leave-redirect' => 'Weiterleitung erstelle',
+
+# Export
+'export' => 'Seite exportiere',
+'exportall' => 'Alle Seite exportiere',
+'export-submit' => 'Seite exportiere',
+'export-addcattext' => 'Seite aus follichender Kategorie hinzufüche:',
+'export-addcat' => 'Hinzufüche',
+'export-addnstext' => 'Seite aus follichendem Noomeraum hinzufüche:',
+'export-addns' => 'Hinzufüche',
+'export-download' => 'Wie XML-Datei speichre',
+'export-templates' => 'Inklusive Vorlooche',
+'export-pagelinks' => 'Verlinkte Seite automatisch mit exportiere, bis zur Rekursionstiefe von:',
+
+# Namespace 8 related
+'allmessages' => 'MediaWiki-Systemnachrichte',
+'allmessagesname' => 'Noome',
+'allmessagesdefault' => 'Standardtext',
+'allmessagescurrent' => 'Aktueller Text',
+'allmessages-filter-legend' => 'Filter',
+'allmessages-filter-unmodified' => 'Unverännert',
+'allmessages-filter-all' => 'Alle',
+'allmessages-filter-modified' => 'Geännert',
+'allmessages-prefix' => 'Präfixfilter:',
+'allmessages-language' => 'Sproch:',
+'allmessages-filter-submit' => 'Geh, los',
+'allmessages-filter-translate' => 'Üwersetze',
+
+# Thumbnails
+'thumbnail-more' => 'vergrösser',
+'filemissing' => 'Datei fehlt',
+'thumbnail_error' => 'Fehler beim Erstelle von der Voarschaubild: $1',
+'thumbnail_error_remote' => 'Fehlermeldung von $1:
+$2',
+'djvu_page_error' => 'DjVu-Seit ausserhalleb von der Seitbereich',
+
+# Special:Import
+'import' => 'Seite importiere',
+'importinterwiki' => 'Transwiki-Import',
+'import-interwiki-templates' => 'Alle Vorlooche einschliesse',
+'import-interwiki-submit' => 'Importiere',
+'import-interwiki-namespace' => 'Zielnoomeraum:',
+'import-upload-filename' => 'Dateinoome:',
+'import-comment' => 'Grund:',
+'importstart' => 'Importiere Seite …',
+'importbadinterwiki' => 'Falscher Interwiki-Link',
+'importnotext' => 'Leer oder ken Text',
+'importsuccess' => 'Import abgeschloss.',
+'importnofile' => 'Es ist ken Importdatei ausgewählt worre.',
+'import-noarticle' => 'Do woard ken zu importierend Seit oongeb!',
+
+# Import log
+'importlogpage' => 'Import-Logbuch',
+
+# Tooltip help for the actions
+'tooltip-pt-userpage' => 'Dein Benutzerseit',
+'tooltip-pt-mytalk' => 'Dein Diskussionsseit',
+'tooltip-pt-preferences' => 'Eichne Instellunge',
+'tooltip-pt-watchlist' => 'List von der beobachtete Seite',
+'tooltip-pt-mycontris' => 'List eichner Beiträche',
+'tooltip-pt-login' => 'Sich oonzumelde weard zwoor gern gesiehn, ist awer ken Flicht.',
+'tooltip-pt-logout' => 'Abmelde',
+'tooltip-ca-talk' => 'Diskussion zum Seiteinhalt',
+'tooltip-ca-edit' => 'Seit beoorbeite. Bitte voar dem Speichre die Voarschaufunktion benutze.',
+'tooltip-ca-addsection' => 'Neie Abschnitt oonfänge',
+'tooltip-ca-viewsource' => 'Die Seit ist geschützt. Ehr Quelltext kann dennoch oongesiehn und kopiert sin.',
+'tooltip-ca-history' => 'Frühre Versione von der Seit',
+'tooltip-ca-protect' => 'Die Seit schütze',
+'tooltip-ca-delete' => 'Die Seit lösche',
+'tooltip-ca-move' => 'Die Seit verschiebe',
+'tooltip-ca-watch' => 'Die Seit zur persönliche Beobachtungslist hinzufüche',
+'tooltip-ca-unwatch' => 'Die Seit von persönliche Beobachtungslist entferne',
+'tooltip-search' => '{{SITENAME}} doorrichsuche',
+'tooltip-search-go' => 'Geh direkt zu der Seit, wo exakt dem ingebne Noome entsprecht.',
+'tooltip-search-fulltext' => 'Such noh Seite, wo den Text enthalle',
+'tooltip-p-logo' => 'Hauptseit',
+'tooltip-n-mainpage' => 'Hauptseit',
+'tooltip-n-mainpage-description' => 'Hauptseit',
+'tooltip-n-portal' => 'Üwer das Projekt, was du tun kannst, wo was zu finne ist',
+'tooltip-n-currentevents' => 'Hinnergrundinformatione zu aktuelle Ereichnisse',
+'tooltip-n-recentchanges' => 'List von der letzte Ändrunge in {{SITENAME}}',
+'tooltip-n-randompage' => 'Zufälliche Seit uffrufe',
+'tooltip-n-help' => 'Hellefseit oonzeiche',
+'tooltip-t-whatlinkshere' => 'List von aller Seite, wo hierher verlinken',
+'tooltip-t-recentchangeslinked' => 'Letzt Ännrunge an Seite, wo von hier verlinkt sind',
+'tooltip-feed-atom' => 'Atom-Feed die Seit',
+'tooltip-t-contributions' => 'List von dem Benutzer sein Beiträche oonsiehn',
+'tooltip-t-emailuser' => 'En E-Mail an den Benutzer sende',
+'tooltip-t-upload' => 'Dateie hochloode',
+'tooltip-t-specialpages' => 'List aller Spezialseite',
+'tooltip-t-print' => 'Druckoonsicht von der Seit',
+'tooltip-t-permalink' => 'Dauerhafter Link zu der Seiteversion',
+'tooltip-ca-nstab-main' => 'Seiteinhalt oonzeiche',
+'tooltip-ca-nstab-user' => 'Benutzerseite oonzeiche',
+'tooltip-ca-nstab-media' => 'Mediedateieseit oonzeiche',
+'tooltip-ca-nstab-special' => 'Das ist en Spezialseit. Die kann net beoorbeitet sin.',
+'tooltip-ca-nstab-project' => 'Portalseit oonzeiche',
+'tooltip-ca-nstab-image' => 'Dateiseit oonzeiche',
+'tooltip-ca-nstab-mediawiki' => 'MediaWiki-Systemtext oonzeiche',
+'tooltip-ca-nstab-template' => 'Voarlooche oonzeiche',
+'tooltip-ca-nstab-help' => 'Hellefseit oonzeiche',
+'tooltip-ca-nstab-category' => 'Kategorieseit oonzeiche',
+'tooltip-minoredit' => 'Die Ännrung als klen markiere.',
+'tooltip-save' => 'Ändrunge speichre',
+'tooltip-preview' => 'Voarschau von der Ändrunge an die Seit. Bitte voar dem Speichre benutze!',
+'tooltip-diff' => 'Ännrunge am Text zeiche',
+'tooltip-compareselectedversions' => 'Unnerschied zwischich zwooi ausgewählte Versione von der Seit oonzeiche',
+'tooltip-watch' => 'Die Seit zu deiner Beobachtungslist hinzufüche',
+'tooltip-watchlistedit-normal-submit' => 'Einträche entferne',
+'tooltip-watchlistedit-raw-submit' => 'Beobachtungsliste aktualisiere',
+'tooltip-recreate' => 'Seit nei erstelle, obwohl die abgewischt woard',
+'tooltip-upload' => 'Hochloode oonfänge',
+'tooltip-rollback' => '"Retuar" macht all die letzte Seit Ännrunge, wo vom letzte Benutzer gemach sind worre, nuar doorirch ene Klick komplet rückgängich.',
+'tooltip-undo' => '"Umwerfe" Macht ledichlich die en Ännrung rückgängich und zeicht das Resultoot in der Vorschau an, domit in der Zusammenfassungszeil, im Summarium, en Begründung oongeb sin kann.',
+'tooltip-preferences-save' => 'Einstellunge speichre',
+'tooltip-summary' => 'Tue en koorz Zusammerfassung ren gewe.',
+
+# Attribution
+'others' => 'annre',
+'creditspage' => 'Seiteinformatione',
+'nocredits' => 'Für die Seit sind ken Informatione voarhand.',
+
+# Spam protection
+'spamprotectiontitle' => 'Spamschutzfilter',
+
+# Info page
+'pageinfo-header-basic' => 'Basisinformatione',
+'pageinfo-header-edits' => 'Beoorbeitungsgeschicht',
+'pageinfo-header-restrictions' => 'Seiteschutz',
+'pageinfo-header-properties' => 'Seiteeigenschafte',
+'pageinfo-display-title' => 'Oonzeichtitel',
+'pageinfo-default-sort' => 'Standardsortierschlüssel',
+'pageinfo-length' => 'Seitelänge (in Bytes)',
+'pageinfo-article-id' => 'Seitekennnummer',
+'pageinfo-language' => 'Seiteinhaltssproch',
+'pageinfo-content-model' => 'Seiteinhaltsmodell',
+'pageinfo-robot-policy' => 'Indizierung doorrich Suchmaschine',
+'pageinfo-robot-index' => 'Erlaubt',
+'pageinfo-robot-noindex' => ' Net erlaubt',
+'pageinfo-views' => 'Oonzoohl von der Seiteuffrufe',
+'pageinfo-watchers' => 'Oonzoohl von der Seit ehr Beobachter',
+'pageinfo-few-watchers' => 'Wenicher wie {{PLURAL:$1|ein|$1}} Beobachter',
+'pageinfo-redirects-name' => 'Oonzoohl von der Weiterleitunge zu der Seit',
+'pageinfo-subpages-name' => 'Unnerseite von der Seit',
+'pageinfo-firstuser' => 'Seiteersteller',
+'pageinfo-firsttime' => 'Datum von der Seiteerstellung',
+'pageinfo-lastuser' => 'Letzter Bearbeiter',
+'pageinfo-lasttime' => 'Datum von der letzte Bearbeitung',
+'pageinfo-edits' => 'Gesamtzoohl von der Beoorbeitunge',
+'pageinfo-authors' => 'Gesamtzoohl unnerschiedlicher Autore',
+'pageinfo-recent-edits' => 'Anzoohl von der kürzlich erfollichte Beoorbeitung (innerhalleb von der letzte $1)',
+'pageinfo-toolboxlink' => 'Seiteinformatione',
+'pageinfo-redirectsto' => 'Weiterleitunge noh',
+'pageinfo-redirectsto-info' => 'Information',
+'pageinfo-contentpage' => 'Gezählt wie en Inhaltsseit',
+'pageinfo-contentpage-yes' => 'Jo',
+'pageinfo-protect-cascading' => 'Seite mit Kaskadeschutz von hier',
+'pageinfo-protect-cascading-yes' => 'Jo',
+'pageinfo-protect-cascading-from' => 'Seite mit Kaskadeschutz von',
+'pageinfo-category-info' => 'Kategorieinformatione',
+'pageinfo-category-pages' => 'Anzoohl  von der Seite',
+'pageinfo-category-subcats' => 'Anzoohl von der Unnerkategoriee',
+'pageinfo-category-files' => 'Oonzoohl von der Dateie',
+
+# Patrolling
+'markaspatrolleddiff' => 'Wie kontrolliert markiere',
+
+# Patrol log
+'patrol-log-page' => 'Kontroll-Logbuch',
+
+# Browsing diffs
+'previousdiff' => '← Zum voarherichen Versionsunnerschied',
+'nextdiff' => 'Zum nächste Versionsunnerschied →',
+
+# Media information
+'file-info-size' => '$1 × $2 Pixel, Dateigröss: $3, MIME-Typ: $4',
+'file-nohires' => 'Ken höchre Ufflösun voarhand.',
+'svg-long-desc' => 'SVG-Datei, Basisgröss: $1 × $2 Pixel, Dateigröss: $3',
+'show-big-image' => 'Originaldatei',
+'file-info-gif-looped' => 'Endlosschleif',
+
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'ago' => 'vor $1',
+'just-now' => 'grood ewe',
+
+# Human-readable timestamps
+'monday-at' => 'Montach um $1',
+'tuesday-at' => 'Dienstach um $1',
+'wednesday-at' => 'Mittwoch um $1',
+'thursday-at' => 'Donnerstach um $1',
+'friday-at' => 'Freitach um $1',
+'saturday-at' => 'Samstach um $1',
+'sunday-at' => 'Sonntach um $1',
+'yesterday-at' => 'Gester um $1',
+
+# Bad image list
+'bad_image_list' => 'Format:
+
+Nuar Zeile, wo mit enem * oonfang, werre ausgewertet. Als earstes noh dem * muss en Link uff en unerwünschte Datei stehn.
+Druff follichende Seitelinks in derselwe Zeile definiere Ausnoohme, in dene ehre Kontext die Datei trotzdem erscheine därref.',
+
+# Metadata
+'metadata' => 'Metadate',
+'metadata-help' => 'Die Datei enthält weitre Informatione, wo in der Rechel von der Digitalkamera orrer dem verwennete Scanner stämme. Doorrich nohträchliche Beoorbeitung von der Originaldatei könne etliche Detalhes verännert gewes sin.',
+'metadata-expand' => 'Erweiterte Detalhes inblende  (zeiche)',
+'metadata-collapse' => 'Erweiterte Detalhes ausblende (verstecke)',
+'metadata-fields' => 'Die follichende Felder von der EXIF-Metadate, wo in dem MediaWiki-Systemtext oongeb sind, werre uff Bildbeschreibungsseite mit ingeklappter Metadatetabelle oongezeicht.
+Weitre werre standardmässich net oongezeicht.
+* make
+* model
+* datetimeoriginal
+* exposuretime
+* fnumber
+* isospeedratings
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
+
+# Exif tags
+'exif-imagewidth' => 'Breit',
+'exif-imagelength' => 'Höch',
+'exif-bitspersample' => 'Bits por Farrebkomponent',
+'exif-compression' => 'Oort von der Kompression',
+'exif-photometricinterpretation' => 'Pixelzusammersetzung',
+'exif-orientation' => 'Kameraausrichtung',
+'exif-samplesperpixel' => 'Oonzoohl von Komponente',
+'exif-planarconfiguration' => 'Dateausrichtung',
+'exif-ycbcrsubsampling' => 'Subsampling Rate von Y bis C',
+'exif-ycbcrpositioning' => 'Y und C Positionierung',
+'exif-xresolution' => 'Horizontale Auflösung',
+'exif-yresolution' => 'Vertikale Auflösung',
+'exif-stripoffsets' => 'Bilddate-Versatz',
+'exif-rowsperstrip' => 'Oonzoohl Zeile por Streife',
+'exif-stripbytecounts' => 'Bytes por komprimiertem Streif',
+'exif-jpeginterchangeformat' => 'Offset zu JPEG SOI',
+'exif-jpeginterchangeformatlength' => 'Gröss von der JPEG-Date in Bytes',
+'exif-whitepoint' => 'Manuell mit Messung',
+'exif-primarychromaticities' => 'Primäre Farreboort',
+'exif-ycbcrcoefficients' => 'YCbCr-Koeffiziente',
+'exif-referenceblackwhite' => 'Schwarz/Weiß-Referenzpunkte',
+'exif-datetime' => 'Speicherzeitpunkt',
+'exif-imagedescription' => 'Bildtitel',
+'exif-make' => 'Hearsteller',
+'exif-model' => 'Modell',
+'exif-software' => 'Software',
+'exif-artist' => 'Fotograf',
+'exif-copyright' => 'Uarheberrechte (Copyright halter)',
+'exif-exifversion' => 'Exif-Version',
+'exif-flashpixversion' => 'nterstützte Flashpix-Version',
+'exif-colorspace' => 'Farrebraum',
+'exif-componentsconfiguration' => 'Bedeitung einzelner Komponente',
+'exif-compressedbitsperpixel' => 'Komprimierte Bits por Pixel',
+'exif-pixelydimension' => 'Bildbreit',
+'exif-pixelxdimension' => 'Bildhöch',
+'exif-usercomment' => 'Benutzerkommentare',
+'exif-relatedsoundfile' => 'Zugehöriche Tondatei',
+'exif-datetimeoriginal' => 'Erfassungszeitpunkt',
+'exif-datetimedigitized' => 'Digitalisierungszeitpunkt',
+'exif-subsectime' => 'Speicherzeitpunkt (1/100 s)',
+'exif-subsectimeoriginal' => 'Erfassungszeitpunkt (1/100 s)',
+'exif-subsectimedigitized' => 'Digitalisierungszeitpunkt (1/100 s)',
+'exif-exposuretime' => 'Belichtungsdauer',
+'exif-exposuretime-format' => '$1 Sekunde ($2)',
+'exif-fnumber' => 'Blend (Englisch: F Number)',
+'exif-exposureprogram' => 'Belichtungsprogramm',
+'exif-spectralsensitivity' => 'Spectral Sensitivity',
+'exif-isospeedratings' => 'Film- orrer Sensoremfindlichkeit (ISO)',
+'exif-shutterspeedvalue' => 'APEX-Belichtungszeitwert',
+'exif-aperturevalue' => 'APEX-Blendenweart',
+'exif-brightnessvalue' => 'APEX-Helligkeitsweart',
+'exif-exposurebiasvalue' => 'Belichtungsvorgab',
+'exif-maxaperturevalue' => 'Grösste Blend',
+'exif-subjectdistance' => 'Entfernung',
+'exif-meteringmode' => 'Messverfoohre',
+'exif-lightsource' => 'Lichtquell',
+'exif-flash' => 'Blitz',
+'exif-focallength' => 'Brennweit',
+'exif-subjectarea' => 'Bereich',
+'exif-flashenergy' => 'Blitzstärrek',
+'exif-focalplanexresolution' => 'Sensorauflösung horizontal',
+'exif-focalplaneyresolution' => 'Sensorauflösung vertikal',
+'exif-focalplaneresolutionunit' => 'Einheit von der Sensorauflösung',
+'exif-subjectlocation' => 'Motivstandplatz',
+'exif-exposureindex' => 'Belichtungsindex',
+'exif-sensingmethod' => 'Messmethode',
+'exif-filesource' => 'Quell von der Datei',
+'exif-scenetype' => 'Szenetyp',
+'exif-customrendered' => 'Benutzerdefiniert Bildveroorbeitung',
+'exif-exposuremode' => 'Belichtungsmodus',
+'exif-whitebalance' => 'Weissabgleich',
+'exif-digitalzoomratio' => 'Digitalzoom',
+'exif-focallengthin35mmfilm' => 'Brennweite (Klenbildäquivalent)',
+'exif-scenecapturetype' => 'Uffnoohmoort',
+'exif-gaincontrol' => 'Verstärkung',
+'exif-contrast' => 'Kontrast',
+'exif-saturation' => 'Sättichung',
+'exif-sharpness' => 'Schärref',
+'exif-devicesettingdescription' => 'Geräteinstellung',
+'exif-subjectdistancerange' => 'Motiventfernung',
+'exif-imageuniqueid' => 'Bild-ID',
+'exif-gpsversionid' => 'GPS-Tag-Version',
+'exif-gpslatituderef' => 'nördl. orrer südl. Breit',
+'exif-gpslatitude' => 'Geografische Breit',
+'exif-gpslongituderef' => 'östl. orrer westl. Länge',
+'exif-gpslongitude' => 'Geografische Länge',
+'exif-gpsaltituderef' => 'Bezuchshöch',
+'exif-gpsaltitude' => 'Höch',
+'exif-gpstimestamp' => 'GPS-Zeit',
+'exif-gpssatellites' => 'Für die Messung benutzte Satellite',
+'exif-gpsstatus' => 'Emfängerstatus',
+'exif-gpsmeasuremode' => 'Messverfoohre',
+'exif-gpsdop' => 'Messgenauigkeit',
+'exif-gpsspeedref' => 'Geschwindichkeitseinheit',
+'exif-gpsspeed' => 'Geschwindichkeit von des GPS-Empfänger',
+'exif-gpstrackref' => 'Referenz für Bewechungsrichtung',
+
+# 'all' in various places, this might be different for inflected languages
+'watchlistall2' => 'all',
+'namespacesall' => 'all',
+'monthsall' => 'all',
+
+# Watchlist editing tools
+'watchlisttools-view' => 'Beobachtungslist: Ännrunge',
+'watchlisttools-edit' => 'normal beoorbeite',
+'watchlisttools-raw' => 'im Listeformat beoorbeite (Import/Export)',
+
+# Core parser functions
+'duplicate-defaultsort' => 'Achtung: Der Sortierungsschlüssel „$2“ üwerschreibt den voarher verwenndte Schlüssel „$1“.',
+
+# Special:SpecialPages
+'specialpages' => 'Spezialseite',
+
+# External image whitelist
+'external_image_whitelist' => ' #Die Zeil net verännre.<pre>
+#Unnestehend könne Fragmente regulärer Ausdrücke (der Tel zwischich den //) ingeb werre.
+#Die werre mit den URLs von Bilder aus externe Quelle vergleicht.
+#En positiver Vergleich führt zur Oonzeiche von das Bild, annerfoolls weard das Bild nuar als Link oongezeicht.
+#Zeile, wo mit en # oonfänge, sin als Kommentar behandelt.
+#Es weard net zwischich Gross- und Klenschreibung unnerschied.
+
+#Fragmente regulärer Ausdrücke noh der Zeile introohn. Die Zeile net verännre.</pre>',
+
+# Special:Tags
+'tag-filter' => '[[Special:Tags|Markierungs]]-Filter:',
+
+);
index 967be9a..7752c1c 100644 (file)
@@ -858,7 +858,7 @@ Móžno, zo je so přesunył abo zhašał, mjeztym zo sej wobhladuješ stronu.',
 'noarticletext' => 'Tuchwilu tuta strona žadyn tekst njewobsahuje. Móžeš [[Special:Search/{{PAGENAME}}|tutón titul strony na druhich stronach pytać]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} wotpowědne protokole pytać] abo [{{fullurl:{{FULLPAGENAME}}|action=edit}} tutu stronu wobdźěłać]</span>.',
 'noarticletext-nopermission' => 'Tuchwilu žadyn tekst na tutej stronje njeje.
 Móžeš [[Special:Search/{{PAGENAME}}|tutón titul strony]] na druhich stronach pytać abo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pytaj wotpowědne protokole]</span>, ale nimaš prawo, strou wutworić.',
-'missing-revision' => 'Wersija #$1 strony z mjenom "{{PAGENAME}}" njeeksistuje.
+'missing-revision' => 'Wersija #$1 strony z mjenom "{{FULLPAGENAME}}" njeeksistuje.
 
 Přičina je zwjetša zestarjeny wotkaz w stawiznach k stronje, kotraž je so zhašała.
 Podrobnosće móžeš w  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokolu wušmórnjenjow] namakać.',
@@ -1083,8 +1083,9 @@ Móžeš sej tutón rozdźěl wobhladać; podrobnosće namakaš w [{{fullurl:{{#
 'revdelete-no-file' => 'Podata dataja njeeksistuje.',
 'revdelete-show-file-confirm' => 'Chceš sej woprawdźe wušmórnjenu wersiju dataje "<nowiki>$1</nowiki>" wot $2 $3  wobhladać?',
 'revdelete-show-file-submit' => 'Haj',
-'revdelete-selected' => "'''{{PLURAL:$2|Wubrana wersija|Wubranej wersiji|Wubrane wersije|Wubranych wersijow}} wot [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Wubrany zapisk z protokola|Wubranej zapiskaj z protokola|Wubrane zapiski z protokola|Wubrane zapiski z protokola}} za '''$1:''''''",
+'revdelete-selected-text' => '{{PLURAL:$1|Wubrana wersija|Wubranej wersiji|Wubrane wersije}} wot [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Wubrana datajowa wersija|Wubranej datajowej wersiji|Wubrane datajowe wersije}} wot [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Wubrany zapisk z protokola|Wubranej zapiskaj z protokola|Wubrane zapiski z protokola|Wubrane zapiski z protokola}} za $1:',
 'revdelete-text-text' => 'Zhašane wersije wostanu hišće we wersijowej historiji, ale dźěle jich wobsaha njebudu přistupne zjawnosći.',
 'revdelete-text-file' => 'Zhašane datajowe wersije wostanu w datajowej historiji, ale dźěle jich wobsaha njebudu přistupne zjawnosći.',
 'logdelete-text' => 'Zhašane protokolowe zapiski wostanu hišće w protokolach, ale dźěle jich wobsaha njebudu přistupne zjawnosći.',
@@ -1944,6 +1945,11 @@ Snano chceš wopisanje na jeje [$2 stronje datajoweho wopisanja] wobdźěłać.'
 # List redirects
 'listredirects' => 'Lisćina daleposrědkowanjow',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lisćina datajow z duplikatami',
+'listduplicatedfiles-summary' => 'To je lisćina datajow, hdźež najnowša wersija dataje je duplikat najnowšeje wersije někajkeje druheje dataje. Jenož lokalne dataje so wobkedźbuja.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] ma [[$3|{{PLURAL:$2|duplikat|$2 duplikataj|$2 duplikaty|$2 duplikatow}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Njewužiwane předłohi',
 'unusedtemplatestext' => 'Tuta strona nalistuje wšě strony w mjenowym rumje {{ns:template}}, kotrež so w druhich stronach njewužiwaja. Prošu přepruwuj druhe wotkazy k předłoham, prjedy hač je wušmórnješ.',
index b467c4a..121e12b 100644 (file)
@@ -823,7 +823,6 @@ Lejand : ({{MediaWiki:Cur}}) = diferans ak vèsyon kounye a, ({{MediaWiki:Last}}
 'revisiondelete' => 'Efase/Restore, remèt vèsyon sa',
 'revdelete-nooldid-title' => 'Pa genyen sib, destinasyon pou revizyon sa',
 'revdelete-show-file-submit' => 'Wi',
-'revdelete-selected' => "'''{{PLURAL:$2|Vèsyon ou seleksyone|Vèsyon ou seleksyone yo}} de $1 :'''",
 'revdelete-legend' => 'Mete restriksyon nan vizibilite yo :',
 'revdelete-hide-text' => 'Kache tèks ki te modifye',
 'revdelete-hide-image' => 'Kache kontni fichye a',
index b409d96..74c381b 100644 (file)
@@ -1028,7 +1028,7 @@ Ha úgy látod, hogy az üzenetek, amiket ide kapsz, nem neked szólnak, [[Speci
 vagy [{{fullurl:{{FULLPAGENAME}}|action=edit}} szerkesztheted a lapot].</span>',
 'noarticletext-nopermission' => 'Ez a lap jelenleg nem tartalmaz szöveget.
 [[Special:Search/{{PAGENAME}}|Rákereshetsz a lap címére]] más lapok tartalmában, vagy <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} megtekintheted a kapcsolódó naplófájlokat]</span>.',
-'missing-revision' => 'A(z) "{{PAGENAME}}" nevű oldal #$1 változata nem létezik.
+'missing-revision' => 'A(z) "{{FULLPAGENAME}}" nevű oldal #$1 változata nem létezik.
 
 Ezt általában egy elavult, törölt oldalra mutató laptörténeti hivatkozás használata okozza. Részletek a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} törlési naplóban] találhatóak.',
 'userpage-userdoesnotexist' => 'Nincs „<nowiki>$1</nowiki>” nevű regisztrált felhasználónk.
@@ -1249,8 +1249,7 @@ vagy a legutolsó változatot próbáltad meg elrejteni.',
 'revdelete-no-file' => 'A megadott fájl nem létezik.',
 'revdelete-show-file-confirm' => 'Biztosan meg szeretnéd nézni a(z) „<nowiki>$1</nowiki>” $2, $3-i törölt változatát?',
 'revdelete-show-file-submit' => 'Igen',
-'revdelete-selected' => "'''A(z) [[:$1]] lap {{PLURAL:$2|kiválasztott változata|kiválasztott változatai}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Kiválasztott naplóesemény|Kiválasztott naplóesemények}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Kiválasztott naplóesemény|Kiválasztott naplóesemények}}:',
 'revdelete-confirm' => 'Kérlek erősítsd meg, hogy valóban ezt szeretnéd tenni; megértetted a következményeket, és amit teszel, az összhangban van [[{{MediaWiki:Policy-url}}|az irányelvekkel]].',
 'revdelete-suppress-text' => "Az elrejtés '''csak''' a következő esetekben használható:
 * Illetlen személyes információk
index cc2828b..4734456 100644 (file)
@@ -1112,8 +1112,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'revdelete-nooldid-title' => 'Անվավեր նպատակային տարբերակ',
 'revdelete-nooldid-text' => 'Դուք կա՛մ չեք նշել նպատակային տարբերակ(ներ)ը այս ֆունկցիայի կատարման համար, կա՛մ նպատակային տարբերակը գոյություն չունի, կա՛մ էլ դուք փորձում եք թաքցնել ընթացիկ տարբերակը։',
 'revdelete-show-file-submit' => 'Այո',
-'revdelete-selected' => "'''[[:$1]] էջի ընտրված {{PLURAL:$2|տարբերակը|տարբերակները}}.'''",
-'logdelete-selected' => "'''Տեղեկամատյանի ընտրված {{PLURAL:$1|գրառումը|գրառումները}}.'''",
+'logdelete-selected' => 'Տեղեկամատյանի ընտրված {{PLURAL:$1|գրառումը|գրառումները}}.',
 'revdelete-legend' => 'Սահմանել տեսանելիության սահմանափակումներ',
 'revdelete-hide-text' => 'Թաքցնել տարբերակի տեքստը',
 'revdelete-hide-image' => 'Թաքցնել նիշքի պարունակությունը',
index ab02fcb..53a9c6d 100644 (file)
@@ -592,6 +592,7 @@ Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].
 'gotaccountlink' => 'Aperir session',
 'userlogin-resetlink' => 'Datos de authentication oblidate?',
 'userlogin-resetpassword-link' => 'Contrasigno oblidate?',
+'userlogin-helplink2' => 'Adjuta al accesso',
 'userlogin-loggedin' => 'Tu ha jam aperite session como {{GENDER:$1|$1}}.
 Usa le formulario sequente pro aperir session como altere usator.',
 'userlogin-createanother' => 'Crear un altere conto',
@@ -693,6 +694,7 @@ Per favor attende $1 ante de probar lo novemente.',
 'createacct-another-realname-tip' => 'Le nomine real es optional.
 Si tu opta pro dar lo, isto essera usate pro dar al usator attribution pro su contributiones.',
 'pt-login' => 'Aperir session',
+'pt-login-button' => 'Aperir session',
 'pt-createaccount' => 'Crear conto',
 'pt-userlogout' => 'Clauder session',
 
@@ -727,6 +729,9 @@ Pro completar le accesso, tu debe definir un nove contrasigno hic:',
 'resetpass-abort-generic' => 'Le cambio del contrasigno ha essite abortate per un extension.',
 'resetpass-expired' => 'Le contrasigno ha expirate. Per favor defini un nove contrasigno pro aperir session.',
 'resetpass-expired-soft' => 'Le contrasigno ha expirate e debe esser redefinite. Per favor elige un nove contrasigno ora, o clicca sur "{{int:resetpass-submit-cancel}}" pro redefinir lo plus tarde.',
+'resetpass-validity-soft' => 'Le contrasigno non es valide: $1
+
+Per favor elige un nove contrasigno ora, o clicca sur "{{int:resetpass-submit-cancel}}" pro redefinir lo plus tarde.',
 
 # Special:PasswordReset
 'passwordreset' => 'Reinitialisar contrasigno',
@@ -891,7 +896,7 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} modificar iste pagina]</span>.',
 'noarticletext-nopermission' => 'In iste momento il non ha texto in iste pagina.
 Tu pote [[Special:Search/{{PAGENAME}}|cercar le titulo de iste pagina]] in altere paginas,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercar in le registros pertinente], ma tu non ha le permission de crear iste pagina.</span>',
-'missing-revision' => 'Le version №$1 del pagina nominate "{{PAGENAME}}" non existe.
+'missing-revision' => 'Le version №$1 del pagina nominate "{{FULLPAGENAME}}" non existe.
 
 Isto es generalmente causate per sequer un ligamine de historia obsolete a un pagina que ha essite delite.
 Detalios se trova in le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de deletiones].',
@@ -1131,8 +1136,11 @@ function, o le version specificate non existe, o tu essaya celar le version actu
 'revdelete-no-file' => 'Le file specificate non existe.',
 'revdelete-show-file-confirm' => 'Es tu secur de voler vider un version delite del file  "<nowiki>$1</nowiki>" del $2 a $3?',
 'revdelete-show-file-submit' => 'Si',
-'revdelete-selected' => "'''{{PLURAL:$2|Version seligite|Versiones seligite}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Evento|Eventos}} de registro seligite:'''",
+'logdelete-selected' => '{{PLURAL:$1|Evento|Eventos}} de registro seligite:',
+'revdelete-text-text' => 'Versiones delite continua a apparer in le historia del pagina, ma parte de lor contento essera inaccessibile pro le publico.',
+'revdelete-text-file' => 'Versiones delite de un file continua a apparer in le historia del file, ma parte de lor contento essera inaccessibile pro le publico.',
+'logdelete-text' => 'Eventos delite continua a apparer in le registros, ma parte de lor contento essera inaccessibile pro le publico.',
+'revdelete-text-others' => 'Altere administratores in {{SITENAME}} continua a poter acceder al contento abscondite e pote restaurar lo per medio de iste mesme interfacie, a minus que additional restrictiones ha essite definite.',
 'revdelete-confirm' => 'Per favor confirma que tu ha le intention de facer isto, que tu comprende le consequentias, e que tu face isto in accordo con [[{{MediaWiki:Policy-url}}|le politica]].',
 'revdelete-suppress-text' => "Le suppression debe '''solmente''' esser usate pro le sequente casos:
 * Information potentialmente diffamatori
@@ -1597,7 +1605,7 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(vide etiam le [[Special:NewPages|lista de nove paginas]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => 'infra es le modificationes a partir de <b>$2</b> (usque a <b>$1</b>).',
+'rcnotefrom' => 'Ecce le modificationes a partir del <strong>$3 a $4</strong> (usque a <strong>$1</strong> entratas).',
 'rclistfrom' => 'Monstrar nove modificationes a partir de $1',
 'rcshowhideminor' => '$1 modificationes minor',
 'rcshowhideminor-show' => 'Monstrar',
@@ -2007,6 +2015,11 @@ Syntaxe: typo/subtypo, p.ex. <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Listar redirectiones',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lista de files con duplicatos',
+'listduplicatedfiles-summary' => 'Isto es un lista de files del quales le version le plus recente es un duplicato del version le plus recente de un altere file. Solmente le files local es examinate.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] ha [[$3|{{PLURAL:$2|un duplicato|$2 duplicatos}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Patronos non usate',
 'unusedtemplatestext' => 'Iste pagina es un lista de tote le paginas in le spatio de nomines "{{ns:template}}" que non es includite in un altere pagina.
@@ -2415,7 +2428,7 @@ Le deletion de tal paginas ha essite restringite pro impedir le disruption accid
 'delete-warning-toobig' => 'Iste pagina ha un grande historia de modificationes con plus de $1 {{PLURAL:$1|version|versiones}}.
 Le deletion de illo pote disrumper le operationes del base de datos de {{SITENAME}};
 procede con caution.',
-'deleting-backlinks-warning' => "'''Attention:''' Il ha altere paginas que liga a o transclude le pagina que tu es sur le puncto de deler.",
+'deleting-backlinks-warning' => "'''Attention:''' Il ha [[Special:WhatLinksHere/{{FULLPAGENAME}}|altere paginas]] que liga a o transclude le pagina que tu es sur le puncto de deler.",
 
 # Rollback
 'rollback' => 'Revocar modificationes',
@@ -2471,7 +2484,7 @@ Ecce le configurationes actual del pagina '''$1''':",
 'protect-locked-access' => "Tu conto non ha le permission de cambiar le nivellos de protection de paginas.
 Ecce le configurationes actual del pagina '''$1''':",
 'protect-cascadeon' => 'Iste pagina es actualmente protegite proque illo es includite in le sequente {{PLURAL:$1|pagina, le qual|paginas, le quales}} ha activate le protection in cascada.
-Tu pote cambiar le nivello de protection de iste pagina, ma isto non cambiara le effecto del protection in cascada.',
+Cambiamentos in le nivello de protection de iste pagina non influentia le protection in cascada.',
 'protect-default' => 'Permitter a tote le usatores',
 'protect-fallback' => 'Permitter solmente al usatores con le privilegio de "$1"',
 'protect-level-autoconfirmed' => 'Permitter solmente al usatores autoconfirmate',
@@ -2597,6 +2610,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Iste adresse IP es actualmente blocate.
 Le ultime entrata del registro de blocadas es reproducite hic infra pro information:',
 'sp-contributions-search' => 'Cercar contributiones',
+'sp-contributions-suppresslog' => 'contributiones supprimite de usatores',
 'sp-contributions-username' => 'Adresse IP o nomine de usator:',
 'sp-contributions-toponly' => 'Monstrar solmente le versiones recente',
 'sp-contributions-newonly' => 'Monstrar solmente le modificationes que es creationes de pagina',
index 626ca2c..6dace7e 100644 (file)
@@ -1059,7 +1059,7 @@ Jika Anda adalah seorang pengguna anonim dan merasa mendapatkan komentar-komenta
 Anda dapat [[Special:Search/{{PAGENAME}}|melakukan pencarian untuk judul halaman ini]] di halaman-halaman lain, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait], atau [{{fullurl:{{FULLPAGENAME}}|action=edit}} menyunting halaman ini]</span>.',
 'noarticletext-nopermission' => '!Saat ini tidak ada teks di halaman ini.
 Anda dapat [[Special:Search/{{PAGENAME}}|melakukan pencarian untuk judul halaman ini]] di halaman-halaman lain, atau <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait]</span>, tapi Anda tidak memiliki izin untuk membuat halaman ini',
-'missing-revision' => 'Revisi #$1 halaman berjudul "{{PAGENAME}}" tidak eksks.
+'missing-revision' => 'Revisi #$1 halaman berjudul "{{FULLPAGENAME}}" tidak eksks.
 
 Hal ini biasanya disebabkan oleh tautan versi terdahulu menuju halaman yang sudah dihapus.
 Rinciannya dapat ditemukan di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].',
@@ -1287,8 +1287,7 @@ Sebagai seorang pengurus, Anda dapat melihat perbedaan ini; detail mungkin terse
 'revdelete-no-file' => 'Berkas yang dituju tidak ditemukan.',
 'revdelete-show-file-confirm' => 'Apakah Anda yakin ingin melihat revisi yang telah dihapus dari berkas "<nowiki>$1</nowiki>" per $3, $2?',
 'revdelete-show-file-submit' => 'Ya',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisi|Revisi-revisi}} pilihan dari '''$1''''''",
-'logdelete-selected' => "'''{{PLURAL:$1|Log|Log-log}} pilihan untuk:'''",
+'logdelete-selected' => '{{PLURAL:$1|Log|Log-log}} pilihan untuk:',
 'revdelete-confirm' => 'Tolong konfirmasi bahwa Anda memang bermaksud melakukan ini, memahami konsekuensinya, dan bahwa Anda melakukannya sesuai dengan [[{{MediaWiki:Policy-url}}|kebijakan]].',
 'revdelete-suppress-text' => "Penyembunyian revisi '''hanya''' boleh digunakan untuk kasus-kasus berikut:
 * Informasi yang berpotensi memfitnah
index 7e29fa2..3bc364a 100644 (file)
@@ -781,7 +781,7 @@ Mabalinmo ti [[Special:Search/{{PAGENAME}}|agsapul iti kastoy a titulo ti panid]
 wenno [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} urnosem daytoy a panid].',
 'noarticletext-nopermission' => 'Awan ti agdama  a linaon daytoy a panid.
 Mabalinmo ti [[Special:Search/{{PAGENAME}}|agbiruk para iti titulo ti daytoy a panid]] kadagiti sabali a panid, wenno <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} agbiruk kadagiti mainaig a listaan]</span>, ngem awan ti pammalubosmo a mangpartuat ti daytoy a panid.',
-'missing-revision' => 'Ti panagbalbaliw ti #$1 iti daytoy a panid a nanaganan ti "{{PAGENAME}}" ket awan.
+'missing-revision' => 'Ti panagbalbaliw ti #$1 iti daytoy a panid a nanaganan ti "{{FULLPAGENAME}}" ket awan.
 
 Daytoy ket kadawyan a gapuanan babaen ti sumaganad a silpo ti baak a pakasaritaan iti maysa a naikkaten a panid.
 Dagiti salaysay ket mabalin a mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti panagikkat].',
@@ -1021,8 +1021,7 @@ awan ti naibaga a panagbaliw, wenno padpadasem nga ilemlemmeng ti agdama a panag
 'revdelete-no-file' => 'Awan dayta nainaganan a papeles.',
 'revdelete-show-file-confirm' => 'Sigurado kadi a kayatmo ti mangkita ti naikkat a baliwan ti papeles "<nowiki>$1</nowiki>" a naggapu idi $2 idi $3?',
 'revdelete-show-file-submit' => 'Wen',
-'revdelete-selected' => "'''{{PLURAL:$2|Napili a nabaliwan|Dagiti napili a nabaliwan}} iti [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Ti napili a listaan ti napasamak|Dagiti napili a listaan ti napasamak}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Ti napili a listaan ti napasamak|Dagiti napili a listaan ti napasamak}}:',
 'revdelete-text-text' => 'Dagiti naikkat a rebision ket agparangto pay laeng iti panid ti pakasaritaan, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.',
 'revdelete-text-file' => 'Dagiti naikkat a bersion ti papeles ket agparangto pay laeng iti pakasaritaan ti papeles, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.',
 'logdelete-text' => 'Dagiti naikkat a listaan ti pasamak ket agparangto pay laeng kadagiti listaan, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.',
index f5cf08c..e7fdd91 100644 (file)
@@ -938,7 +938,7 @@ Ef þú ert óþekktur notandi og finnst að óviðkomandi athugasemdum hafa ver
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} leitað í tengdum skrám], eða [{{fullurl:{{FULLPAGENAME}}|action=edit}} breytt henni sjálfur]</span>.',
 'noarticletext-nopermission' => 'Það er enginn texti á þessari síðu eins og er.
 Þú getur [[Special:Search/{{PAGENAME}}|leitað að þessum titli]] í öðrum síðum, eða <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} leitað í tengdum skrám]</span>, en þú hefur ekki réttindi til þess að stofna þessa síðu.',
-'missing-revision' => 'Útgáfa #$1 síðunnar „{{PAGENAME}}" er ekki til.
+'missing-revision' => 'Útgáfa #$1 síðunnar „{{FULLPAGENAME}}" er ekki til.
 
 Þetta gerist oftast þegar úreld breytingarskrá tengir á síðu sem hefur verið eytt. Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} eyðingarskránni].',
 'userpage-userdoesnotexist' => 'Notandaaðgangurinn „<nowiki>$1</nowiki>“ er ekki skráður.
@@ -1160,8 +1160,7 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGE
 'revdelete-no-file' => 'Umbeðin skrá er ekki til.',
 'revdelete-show-file-confirm' => 'Ertu viss um að þú viljir sjá eydda breytingu af síðunni "<nowiki>$1</nowiki>" frá $2 $3?',
 'revdelete-show-file-submit' => 'Já',
-'revdelete-selected' => "'''{{PLURAL:$2|Valin breyting|Valdar breytingar}} fyrir [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Valin aðgerð|Valdar aðgerðir}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Valin aðgerð|Valdar aðgerðir}}:',
 'revdelete-confirm' => 'Vinsamlegast staðfestu að þú viljir gera þetta, að þú skiljir afleiðingarnar og að þú sért að gera þetta í samræmi við  [[{{MediaWiki:Policy-url}}]].',
 'revdelete-suppress-text' => "Bælingu á '''eingöngu''' að nota í eftirfarandi tilfellum:
 * Mögulegar ærumleiðandi upplýsingar
index 93d82c4..3458030 100644 (file)
@@ -1013,7 +1013,7 @@ Se il collegamento è stato aperto per errore, è sufficiente fare clic sul puls
 ''Questa è la pagina di discussione di un utente anonimo, che non ha ancora creato un'utenza o comunque non la sta usando. Per identificarlo è quindi necessario usare il numero del suo indirizzo IP. Gli indirizzi IP possono però essere condivisi da più utenti. Se sei un utente anonimo e ritieni che i commenti presenti in questa pagina non si riferiscano a te, [[Special:UserLogin/signup|crea una nuova utenza]] o [[Special:UserLogin|entra con quella che già hai]] per evitare di essere confuso con altri utenti anonimi in futuro.''",
 'noarticletext' => 'In questo momento la pagina richiesta è vuota. È possibile [[Special:Search/{{PAGENAME}}|cercare questo titolo]] nelle altre pagine del sito, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercare nei registri correlati] oppure [{{fullurl:{{FULLPAGENAME}}|action=edit}} modificare la pagina ora]</span>.',
 'noarticletext-nopermission' => 'In questo momento la pagina richiesta è vuota. È possibile [[Special:Search/{{PAGENAME}}|cercare questo titolo]] nelle altre pagine del sito o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercare nei registri correlati]</span>, ma non hai i permessi per creare questa pagina.',
-'missing-revision' => 'La revisione #$1 della pagina "{{PAGENAME}}" non esiste.
+'missing-revision' => 'La revisione #$1 della pagina "{{FULLPAGENAME}}" non esiste.
 
 Questo si verifica solitamente seguendo un collegamento a una pagina cancellata, in una cronologia non aggiornata.
 I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro delle cancellazioni].',
@@ -1238,8 +1238,9 @@ In quanto amministratore puoi visualizzare questo confronto di versioni; potrebb
 'revdelete-no-file' => 'Il file specificato non esiste.',
 'revdelete-show-file-confirm' => 'Si desidera visualizzare la versione cancellata del file "<nowiki>$1</nowiki>" del $2 alle $3?',
 'revdelete-show-file-submit' => 'Sì',
-'revdelete-selected' => "'''{{PLURAL:$2|Versione selezionata|Versioni selezionate}} di [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Evento del registro selezionato|Eventi del registro selezionati}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Versione selezionata|Versioni selezionate}} di [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Versione selezionata|Versioni selezionate}} del file di [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Evento del registro selezionato|Eventi del registro selezionati}}:',
 'revdelete-text-text' => 'Le versioni cancellate appariranno ancora nella cronologia della pagina, ma parti del loro contenuto sarà inaccessibile al pubblico.',
 'revdelete-text-file' => 'Le versioni di file cancellati appariranno ancora nella cronologia del file, ma parti del loro contenuto sarà inaccessibile al pubblico.',
 'logdelete-text' => 'Gli eventi cancellati appariranno ancora nei registri, ma parti del loro contenuto sarà inaccessibile al pubblico.',
index 8ae043d..3138ed4 100644 (file)
@@ -1124,7 +1124,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 または[{{fullurl:{{FULLPAGENAME}}|action=edit}} このページを編集]</span>できます。',
 'noarticletext-nopermission' => '現在このページには内容がありません。
 他のページ内で[[Special:Search/{{PAGENAME}}|このページ名を検索]]、または<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 関連する記録を検索]</span>できますが、あなたにはこのページを作成する権限はありません。',
-'missing-revision' => '「{{PAGENAME}}」というページの版番号 $1 の版は存在しません。
+'missing-revision' => '「{{FULLPAGENAME}}」というページの版番号 $1 の版は存在しません。
 
 通常、削除されたページの版への古い差分表示や固定リンクをたどった際に、このようなことが起きます。 
 詳細は[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]を参照してください。',
@@ -1363,8 +1363,7 @@ $3 が示した理由: ''$2''",
 'revdelete-no-file' => '指定されたファイルは存在しません。',
 'revdelete-show-file-confirm' => 'ファイル「<nowiki>$1</nowiki>」の削除された$2$3の版を本当に閲覧しますか?',
 'revdelete-show-file-submit' => 'はい',
-'revdelete-selected' => '<strong>[[:$1]] の{{PLURAL:$2|選択された版}}:</strong>',
-'logdelete-selected' => '<strong>{{PLURAL:$1|選択された記録項目}}:</strong>',
+'logdelete-selected' => '{{PLURAL:$1|選択された記録項目}}:',
 'revdelete-text-others' => '追加の制限を設定しない限り、{{SITENAME}} の他の管理者は非表示コンテンツにまだアクセスでき、この同じインターフェースを通してそれを復元することができます。',
 'revdelete-confirm' => 'この操作を行おうとしていること、その結果を理解していること、[[{{MediaWiki:Policy-url}}|方針]]に従っていること、を確認してください。',
 'revdelete-suppress-text' => '秘匿は、<strong>以下の場合に限って</strong>使用すべきです:
@@ -2257,6 +2256,9 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 # List redirects
 'listredirects' => '転送ページの一覧',
 
+# List duplicated files special page
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] には [[$3|{{PLURAL:$2|$2 件の重複ファイル}}]]があります。',
+
 # Unused templates
 'unusedtemplates' => '使われていないテンプレート',
 'unusedtemplatestext' => 'このページでは{{ns:template}}名前空間にあって他のページに読み込まれていないページを一覧にしています。
index 1c521fb..456c853 100644 (file)
@@ -748,7 +748,7 @@ utawa [{{fullurl:{{FULLPAGENAME}}|action=edit}} nyunting kaca iki]</span>.',
 'noarticletext-nopermission' => 'Saiki ora ana tèks ing kaca iki. 
 Sampéyan bisa [[Special:Search/{{PAGENAME}}|nggolèki judhul kaca iki]] nèng kaca liya, 
 utawa <span class="plainlinks">[{{fullurl:{{#Special:Log}}|kaca={{urlencode:{{FULLPAGENAME}}}}}} nggolèki log sing kaitan]</span>, nanging Sampéyan ora nduwèni idin nggawé kaca iki.',
-'missing-revision' => 'Benahan #$1 saka kaca ajeneng "{{PAGENAME}}" ora ana.
+'missing-revision' => 'Benahan #$1 saka kaca ajeneng "{{FULLPAGENAME}}" ora ana.
 
 Iki biasané kasebabaké pranala riwayat sing kedaluwarsa saka kaca kuwi wis dibusak.
 Rinciané bisa ditemokaké nèng [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log pambusakan].',
@@ -962,8 +962,7 @@ Sampéyan isih bisa ndelok prabédan iki; rincian bisa ditemokaké nèng [{{full
 'revdelete-no-file' => 'Berkas sing dituju ora ana.',
 'revdelete-show-file-confirm' => 'Apa panjenengan yakin arep mirsani révisi sing wis kabusak saka berkas "<nowiki>$1</nowiki>" ing $2, jam $3?',
 'revdelete-show-file-submit' => 'Ya',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisi kapilih|Revisi kapilih}} dari '''$1''''''",
-'logdelete-selected' => "'''{{PLURAL:$1|Log kapilih|Log kapilih}} kanggo:'''",
+'logdelete-selected' => '{{PLURAL:$1|Log kapilih|Log kapilih}} kanggo:',
 'revdelete-confirm' => 'Mangga pesthèkaké yèn Sampéyan pancèn kudu nglakoni iki, yèn Sampéyan ngerti akibaté, lan yèn Sampéyan ngakoni iki cocok karo [[{{MediaWiki:Policy-url}}|kawicakan]].',
 'revdelete-suppress-text' => "Pandhelikan révisi '''mung''' bisa dipigunakaké kanggo kasus ing ngisor:
 * Informasi sing kagolong pitnah
index af5ea3f..095c8cb 100644 (file)
@@ -890,7 +890,7 @@ $2
 'noarticletext-nopermission' => 'ამ დროისთვის ეს გვერდი ცარიელია.
 თქვენ შეგიძლიათ [[Special:Search/{{PAGENAME}}|მოძებნოთ ეს სათაური]] სხვა გვერდებზე,
 ან <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} მოძებნოთ ჟურნალების შესაბამისი ჩანაწერები].</span> თქვენ არ გაქვთ ამ გვერდის შექმნის ნებართვა.',
-'missing-revision' => 'ვერსია $1 გვერდისათვის „{{PAGENAME}}“ არ არსებობს.
+'missing-revision' => 'ვერსია $1 გვერდისათვის „{{FULLPAGENAME}}“ არ არსებობს.
 
 ეს ჩვეულებრივ ხდება მაშინ, თუ მოძველებული ბმულით გადადიხართ გვერდზე, რომელიც წაიშალა.
 დეტალური ინფორმაცია შესაძლებელია იყოს [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლების ჟურნალში].',
@@ -1109,8 +1109,7 @@ $3 -ემ ამგვარი ახსნა : ''$2''",
 'revdelete-no-file' => 'მოთხოვნილი ფაილი არ არსებობს.',
 'revdelete-show-file-confirm' => 'დარწმუნებული ხართ, რომ გსურთ ამ ფაილის წაშლილი ვერსიის ნახვა, „<nowiki>$1</nowiki>“ $2, $3-დან ?',
 'revdelete-show-file-submit' => 'ჰო',
-'revdelete-selected' => "'''[[:$1]]-ის {{PLURAL:$2|მონიშნული ცვლილება|მონიშნული ცვლილებები}}:'''",
-'logdelete-selected' => "'''ჟურნალის {{PLURAL:$1|არჩეული ჩანაწერი|არჩეული ჩანაწერები}}:'''",
+'logdelete-selected' => 'ჟურნალის {{PLURAL:$1|არჩეული ჩანაწერი|არჩეული ჩანაწერები}}:',
 'revdelete-confirm' => 'გთხოვთ დაადასტუროთ, რომ გსურთ ქმედების განხორციელება. ასევე ვიმედოვნებთ, რომ ყველაფერს აკეთებთ  [[{{MediaWiki:Policy-url}}|წესებთან შესაბამისობაში]].',
 'revdelete-suppress-text' => "დამალვა შეიძლება განხორციელდეს '''მხოლოდ''' შემდეგ შემთხვევებში:
 * პოტენციურად ცილისმწამებლური ინფორმაცია
index 04d542e..6b16942 100644 (file)
@@ -728,7 +728,6 @@ Sha'rtli belgiler: (ha'z.) = ha'zirgi nusqasi menen parqı,
 'rev-deleted-user' => "(paydalanıwshı atı o'shirildi)",
 'rev-deleted-event' => "(jurnal ha'reketi o'shirildi)",
 'rev-delundel' => "ko'rsetiw/jasırıw",
-'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|saylang'an nusqası|saylang'an nusqaları}}:'''",
 'revdelete-legend' => "Ko'rinis sheklewlerin belgilew",
 'revdelete-hide-text' => 'Nusqa tekstin jasır',
 'revdelete-hide-image' => "Fayl mag'lıwmatın jasır",
index c454a1e..b82a0e2 100644 (file)
@@ -732,7 +732,7 @@ Ma tɣelṭeḍ, wekki kan ɣef tqeffalt "Back/Précédent" n browser/explorateu
 'noarticletext-nopermission' => 'Imira ulac aḍris deg usebter agi.
 Tzemreḍ [[Special:Search/{{PAGENAME}}|ad nadiḍ ɣef azwel agi]] deg isebtaren nniḍen,
 naɣ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|asebter={{FULLPAGENAMEE}}}} ad nadiḍ deg iɣmisen iqqenen]</span>.',
-'missing-revision' => 'Tacaggart #$1 n usebter s isem « {{PAGENAME}} » ulac-itt.
+'missing-revision' => 'Tacaggart #$1 n usebter s isem « {{FULLPAGENAME}} » ulac-itt.
 
 Acku azday n umezruy, ɣef wayen tsennedeḍ, d-aqbur. Asebter yemḥa.
 Tzemreḍ ad affeḍ tilɣa deg [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} uɣmis n isebtar yemḥan].',
@@ -956,8 +956,7 @@ Tzemreḍ att ẓṛeḍ ; tilɣa llant deg [{{fullurl:{{#Special:Log}}/delete|p
 'revdelete-no-file' => 'Afaylu id ssefruḍ ur yella ara.',
 'revdelete-show-file-confirm' => 'Tebɣriḍ ad mḥuḍ tacaggart n ufaylu « <nowiki>$1</nowiki> » n $2 af $3 ?',
 'revdelete-show-file-submit' => 'Ih',
-'revdelete-selected' => "'''{{PLURAL:$2|Tasiwelt tettwafren|Tisiwal ttwafernen}} n [[:$1]]'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Tamirt n uɣmis tettwafren|Isallen n uɣmis ttwafernen}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Tamirt n uɣmis tettwafren|Isallen n uɣmis ttwafernen}}:',
 'revdelete-confirm' => 'Sergeg ma tebɣiḍ ad xedmeḍ tigawt agi, fehmeḍ inalkamen, dɣa temtawiḍ s [[{{MediaWiki:Policy-url}}|ilugan]].',
 'revdelete-suppress-text' => "Ilaq tukksa att illi \"kan\" deg tijṛa agi :
 * Tilɣa ahat tinergamin
index 5226e88..ee2c1b1 100644 (file)
@@ -820,8 +820,7 @@ $3 ар зтеухуауэ къитхыр: ''$2''",
 'revdelete-no-file' => 'Къэгъэлъэгъуа файлыр щыӀэкъым.',
 'revdelete-show-file-confirm' => 'Арэзыуэ ущыт уеплъыну файл ихам и версиэ «<nowiki>$1</nowiki>» $2, $3 ?',
 'revdelete-show-file-submit' => 'НытӀэ',
-'revdelete-selected' => "'''{{PLURAL:$2|Версиэ хэхар|Версиэ хэхахэр}} напэкӀуэцӀ [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Тхылъ хэхар|Тхылъ хэхахэр}} тхыгъэм:'''",
+'logdelete-selected' => '{{PLURAL:$1|Тхылъ хэхар|Тхылъ хэхахэр}} тхыгъэм:',
 'revdelete-confirm' => 'Арэзыгъуэ ет, быщӀэр зэр уи гугъэр, къыхэкӀынур къызэрыбгурыӀуэр, быщӀу хъуамкӀэ [[{{MediaWiki:Policy-url}}|хабзэм]] узэремыбакъуэр.',
 'revdelete-suppress-text' => "ГъэпшкӀугъэр щекӀуэкӀыфыну '''къуэдер''' мыбым хуэдэм:
 
index 443d951..0ec8688 100644 (file)
@@ -649,7 +649,6 @@ Sıma be idarekerênia ho ra şikinê hona [$1 nê ferqi bıvênê], eke wazenê
 'revdelete-no-file' => 'Dosya diyarkerdiye çina.',
 'revdelete-show-file-confirm' => 'Sıma eminê ke wazenê çımraviarnaena esterıtiya na dosya "<nowiki>$1</nowiki>" $2 ra $3 de bıvênê?',
 'revdelete-show-file-submit' => 'Heya',
-'revdelete-selected' => "'''[[:$1]]: ra {{PLURAL:$2|Çımraviarnaiso weçinıte|Çımraviarnaisê weçinıtey}}'''",
 'revdelete-suppress-text' => "Wedardene gunê '''teyna''' nê halunê cêrênu de bıguriyo:
 * Melumatê kıfırio mıhtemel
 * Melumatê şexsio bêmınasıb
index ab53847..3d23656 100644 (file)
@@ -1008,8 +1008,7 @@ $3 كەلتىرىلگەن سەبەبى: ''$2''",
 'revdelete-nooldid-title' => 'نىسانا تۇزەتۋ جارامسىز',
 'revdelete-nooldid-text' => 'بۇل جەتەنى ورىنداۋ ٴۇشىن نىسانا تۇزەتۋىن/تۇزەتۋلەرىن كەلتىرىلمەپسىز,
 كەلتىرىلگەن تۇزەتۋ جوق, نە اعىمدىق تۇزەتۋدى جاسىرۋ ٴۇشىن ارەكەتتەنىپ كوردىڭىز.',
-'revdelete-selected' => "'''[[:$1]] دەگەننىڭ بولەكتەنگەن {{PLURAL:$2|تۇزەتۋى|تۇزەتۋلەرى}}:'''",
-'logdelete-selected' => "'''بولەكتەنگەن {{PLURAL:$1|جۋرنال وقىيعاسى|جۋرنال وقىيعالارى}}:'''",
+'logdelete-selected' => 'بولەكتەنگەن {{PLURAL:$1|جۋرنال وقىيعاسى|جۋرنال وقىيعالارى}}:',
 'revdelete-legend' => 'كورىنىس تىيىمدارىن قويۋ:',
 'revdelete-hide-text' => 'تۇزەتۋ ٴماتىنىن جاسىر',
 'revdelete-hide-image' => 'فايل ماعلۇماتىن جاسىر',
index 1e9dee2..52fd4fa 100644 (file)
@@ -601,7 +601,7 @@ $1',
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} туралы',
 'aboutpage' => 'Project:Жоба туралы',
-'copyright' => 'Мәлімет $1 шартымен жетімді.',
+'copyright' => 'Мәлімет $1 лицензиясы аясында жетімді басқа жағдайда белгіленеді.',
 'copyrightpage' => '{{ns:project}}:Авторлық құқықтар',
 'currentevents' => 'Ағымдағы оқиғалар',
 'currentevents-url' => 'Project:Ағымдағы оқиғалар',
@@ -763,7 +763,7 @@ $2',
 'virus-unknownscanner' => 'белгісіз антивирус:',
 
 # Login and logout pages
-'logouttext' => "'''Жүйеден шықтыңыз.'''
+'logouttext' => "<strong>Жүйеден шықтыңыз.</strong>
 
 Жүйеге кірмесеңіз де {{SITENAME}} жобасын пайдалана аласыз, немесе баяғы не өзге қатысушы ретінде жүйеге <span class='plainlinks'>[$1 қайта кіруіңізге]</span> болады.
 Аңғартпа: Кейбір беттер шолғышыңыздың кэшін тазартқанша әлі де жүйеге кіріп отырғаныңыздай көрінуі мүмкін.",
@@ -873,8 +873,8 @@ $2',
 'throttled-mailpassword' => 'Соңғы {{PLURAL:$1|сағатта|$1 сағатта}} құпия сөз ескерту хаты алдақашан жөнелтілді.
 Қиянатты қақпайлау үшін, {{PLURAL:$1|сағат|$1 сағат}} сайын тек бір ғана құпия сөз ескерту хаты жөнелтіледі.',
 'mailerror' => 'Хат жөнелту қатесі: $1',
-'acct_creation_throttle_hit' => 'Ғафу етіңіз, сіз алдақашан $1 рет тіркелгі жасапсыз. Онан артық жасай алмайсыз.
-Нәтижесінде, осы IP-мекенжаймен кірушілер дәл қазіргі уақытта бірнеше тіркелгі жасай алмайды.',
+'acct_creation_throttle_hit' => 'Сіздің IP-мекенжайыңызбен осы уикиге кірушілер соңғы күнде {{PLURAL:$1|1 тіркелгі|$1 тіркелгі}} жасапты. Одан артық бұл уақыт аралығында рұқсат етілмейді.
+Нәтижесінде осы IP-мекенжайды пайдаланып кірушілер дәл қазіргі уақытта бірнеше тіркелгі жасай алмайды.',
 'emailauthenticated' => 'Е-пошта мекен-жайыңыз расталған кезі: $3, $2.',
 'emailnotauthenticated' => 'Е-пошта мекен-жайыңыз әлі расталған жоқ.
 Келесі әрбір мүмкіндіктер үшін еш хат жөнелтілмейді.',
@@ -1057,8 +1057,8 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 * '''Google Chrome:'''  ''Ctrl-Shift-R'' басыңыз (Mac — ''⌘-Shift-R'')
 *'''IE:''' ''Жаңарту'' батырмасын нұқығанда ''Ctrl'' тұтыңыз, не ''Ctrl-F5'' басыңыз;  не ''F5'' басыңыз; *'''Opera''' пайданушылары ''Құралдар→Бапталымдар'' дегенге барып бүркемесін толық тазарту жөн.",
 'usercssyoucanpreview' => "'''Кеңес:''' Жаңа CSS файлын сақтау алдында «Қарап шығу» батырмасын қолданып сынақтаңыз.",
-'userjsyoucanpreview' => "'''Ақыл-кеңес:''' Жаңа JS файлын сақтау алдында «Қарап шығу» батырмасын қолданып сынақтаңыз.",
-'usercsspreview' => "'''Мынау CSS мәтінін тек қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
+'userjsyoucanpreview' => '<strong>Ақыл-кеңес:</strong> Жаңа JavaScript файлыңызды сақтау алдында "{{int:showpreview}}" батырмасын қолданып сынақтаңыз.',
+'usercsspreview' => '</strong>Бұл тек қатысушы CSS файлыңызды қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!</strong>',
 'userjspreview' => "'''Мынау JavaScript қатысушы бағдарламасын тексеру/қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
 'sitecsspreview' => "'''Мынау CSS қатысушы бағдарламасын тексеру/қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
 'sitejspreview' => "'''Мынау JavaScript кодын тексеру/қарап шығу екенін ұмытпаңыз, ол әлі сақталған жоқ!'''",
@@ -1243,8 +1243,7 @@ $3 есімді қатысушының келтіріген себебі: <em>$2
 'revdelete-nooldid-text' => 'Бұл жетені орындау үшін нысана түзетуін/түзетулерін келтірілмепсіз,
 келтірілген түзету жоқ, не ағымдық түзетуді жасыру үшін әрекеттеніп көрдіңіз.',
 'revdelete-show-file-submit' => 'Иә',
-'revdelete-selected' => "'''[[:$1]] дегеннің бөлектенген {{PLURAL:$2|түзетуі|түзетулері}}:'''",
-'logdelete-selected' => "'''Бөлектенген {{PLURAL:$1|журнал оқиғасы|журнал оқиғалары}}:'''",
+'logdelete-selected' => 'Бөлектенген {{PLURAL:$1|журнал оқиғасы|журнал оқиғалары}}:',
 'revdelete-legend' => 'Көрініс тиымдарын қою:',
 'revdelete-hide-text' => 'Түзету мәтінін жасыр',
 'revdelete-hide-image' => 'Файл мағлұматын жасыр',
@@ -1274,7 +1273,7 @@ $1",
 # Suppression log
 'suppressionlog' => 'Шеттету журналы',
 'suppressionlogtext' => 'Төмендегі тізімде әкімшілерден жасырылған мағлұматқа қатысты жоюлар мен бұғаттаулар беріледі.
-Ағымда әрекеттегі тиым мен бұғаттау тізімі үшін [[Special:IPBlockList|IP бұғаттау тізімін]] қараңыз.',
+Қазіргі әрекет тиымдары және бұғаттау тізімі үшін [[Special:BlockList|бұғаттау тізімін]] қараңыз.',
 
 # History merging
 'mergehistory' => 'Беттер тарихын біріктіру',
@@ -1350,7 +1349,7 @@ $1",
 'searchprofile-project-tooltip' => '$1 іздеу',
 'searchprofile-images-tooltip' => 'Файлдарды іздеу',
 'searchprofile-everything-tooltip' => 'Барлық беттерден іздеу (талқылау беттерін қоса)',
-'searchprofile-advanced-tooltip' => 'Белгіленген есім кеңістігінен іздеу',
+'searchprofile-advanced-tooltip' => 'Әдепкі есім кеңістігінен іздеу',
 'search-result-size' => '$1 ({{PLURAL:$2|1 сөз|$2 сөз}})',
 'search-result-category-size' => '{{PLURAL:$1|1 мүше|$1 мүше}} ({{PLURAL:$2|1 санатша|$2 санатша}}, {{PLURAL:$3|1 файл|$3 файл}})',
 'search-result-score' => 'Арақатынастылығы: $1 %',
@@ -1361,7 +1360,7 @@ $1",
 'search-interwiki-default' => '$1 нәтиже:',
 'search-interwiki-more' => '(көбірек)',
 'search-relatedarticle' => 'Қатысты',
-'searcheverything-enable' => 'Ð\91елгÑ\96ленген есім кеңістігінен іздеу',
+'searcheverything-enable' => 'Ð\91аÑ\80лÑ\8bÒ\9b есім кеңістігінен іздеу',
 'searchrelated' => 'қатысты',
 'searchall' => 'барлық',
 'showingresults' => "Төменде нөмір '''$2''' орнынан бастап барынша '''$1''' нәтиже көрсетіледі.",
@@ -1833,11 +1832,11 @@ The deletion and move log for this page are provided here for convenience:",
 'upload-proto-error-text' => 'Шеттен жүктеу үшін URL жайлары <code>http://</code> немесе <code>ftp://</code> дегендерден басталу жөн.',
 'upload-file-error' => 'Ішкі қате',
 'upload-file-error-text' => 'Серверде уақытша файл құрылуы ішкі қатесіне ұшырасты.
-Бұл жүйенің әкімшімен қатынасыңыз.',
+Бұл жүйенің [[Special:ListUsers/sysop|әкімшімен]] қатынасыңыз.',
 'upload-misc-error' => 'Жүктеу кезіндегі белгісіз қате',
 'upload-misc-error-text' => 'Жүктеу кезінде белгісіз қатеге ұшырасты.
 URL жарамды және қатынаулы екенін тексеріп шығыңыз да қайта байқап көріңіз.
-Егер бұл мәселе әлде де қалса, жүйе әкімшімен қатынасыңыз.',
+Егер бұл мәселе әлде де қалса, [[Special:ListUsers/sysop|жүйе әкімшімен]] қатынасыңыз.',
 'upload-too-many-redirects' => 'URL шектен тыс жылжытуларға ие',
 'upload-unknown-size' => 'Белгісіз өлшем',
 
index b9da051..4d35aea 100644 (file)
@@ -971,8 +971,7 @@ Mında [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} joyw jwrnalı
 'revdelete-nooldid-title' => 'Nısana tüzetw jaramsız',
 'revdelete-nooldid-text' => 'Bul jeteni orındaw üşin nısana tüzetwin/tüzetwlerin keltirilmepsiz,
 keltirilgen tüzetw joq, ne ağımdıq tüzetwdi jasırw üşin ärekettenip kördiñiz.',
-'revdelete-selected' => "'''[[:$1]] degenniñ bölektengen {{PLURAL:$2|tüzetwi|tüzetwleri}}:'''",
-'logdelete-selected' => "'''Bölektengen {{PLURAL:$1|jwrnal oqïğası|jwrnal oqïğaları}}:'''",
+'logdelete-selected' => 'Bölektengen {{PLURAL:$1|jwrnal oqïğası|jwrnal oqïğaları}}:',
 'revdelete-legend' => 'Körinis tïımdarın qoyw:',
 'revdelete-hide-text' => 'Tüzetw mätinin jasır',
 'revdelete-hide-image' => 'Faýl mağlumatın jasır',
index 2b7034b..bef03f4 100644 (file)
@@ -1224,8 +1224,7 @@ $2
 'revdelete-no-file' => 'មិនមានឯកសារ​ដែលអ្នកចង់រកទេ។',
 'revdelete-show-file-confirm' => 'តើ​អ្នក​ប្រាកដ​ហើយ​ថា​អ្នក​ចង់​មើល​កំណែ​ប្រែ​ដែល​បាន​លុប​នៃ​ឯកសារ​ "<nowiki>$1</nowiki>" ពី $2 នៅ $3 ?',
 'revdelete-show-file-submit' => 'បាទ/ចាស',
-'revdelete-selected' => "'''{{PLURAL:$2|កំណែប្រែ​ដែលបាន​ជ្រើសយក}}របស់​[[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|ព្រឹត្តិការណ៍​កំណត់​ហេតុ​ដែលបាន​ជ្រើសយក}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|ព្រឹត្តិការណ៍​កំណត់​ហេតុ​ដែលបាន​ជ្រើសយក}}:',
 'revdelete-suppress-text' => "ការ​ហាមឃាត់​គួរ​ត្រូវ​បាន​អនុវត្តិ​លើ​ករណី​ដូច​ខាង​ក្រោម​នេះ​ប៉ុណ្ណោះ​៖
 * ព័ត៌មានបង្ខូចកេរ្ដិ៍ឈ្មោះធ្ងន់ធ្ងរ
 * ព័ត៌មាន​ផ្ទាល់​ខ្លួន​មិន​សមរម្យ​
index f213462..408848b 100644 (file)
@@ -810,7 +810,6 @@ $2',
 'rev-delundel' => 'ತೋರಿಸು/ಅಡಗಿಸು',
 'rev-showdeleted' => 'ತೋರಿಸು',
 'revdelete-show-file-submit' => 'ಹೌದು',
-'revdelete-selected' => "'''[[:$1]]ರ ಆಯ್ಕೆಯಾಗಿರುವ {{PLURAL:$2|ಆವೃತ್ತಿ|ಆವೃತ್ತಿಗಳು}}:'''",
 'revdelete-legend' => 'ಕಾಣಿಸುವಿಕೆಯ ನಿಬಂಧನೆಗಳನ್ನು ನಿಶ್ಚಯಿಸು',
 'revdelete-hide-text' => 'ಬದಲಾವಣೆಯ ಪಠ್ಯವನ್ನು ಅಡಗಿಸು',
 'revdelete-hide-image' => 'ಫೈಲಿನಲ್ಲಿರುವ ಮಾಹಿತಿಯನ್ನು ಅಡಗಿಸು',
index 5311d94..e2f2e1c 100644 (file)
@@ -1107,7 +1107,7 @@ IP 주소는 여러 사용자가 공유할 수 있습니다.
 문서를 직접 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 편집]</span>할 수 있습니다.',
 'noarticletext-nopermission' => '이 문서가 현재 존재하지 않습니다.
 이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색하거나]], 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인할 수 있습니다.</span> 그러나 이 문서를 만들 수 있는 권한은 없습니다.',
-'missing-revision' => '"{{PAGENAME}}"이라는 문서의 #$1판이 존재하지 않습니다.
+'missing-revision' => '"{{FULLPAGENAME}}"이라는 문서의 #$1판이 존재하지 않습니다.
 
 이 문제는 주로 삭제된 문서를 가리키는 오래된 문서 역사 링크로 인해 발생합니다.
 자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 확인할 수 있습니다.',
@@ -1345,8 +1345,7 @@ $2개 보다 적게 {{PLURAL:$2|써야}} 하지만 {{PLURAL:$1|지금은 $1개
 'revdelete-no-file' => '해당 파일이 존재하지 않습니다.',
 'revdelete-show-file-confirm' => '정말 "<nowiki>$1</nowiki>" 파일의 삭제된 $2 $3 버전을 보시겠습니까?',
 'revdelete-show-file-submit' => '예',
-'revdelete-selected' => "'''[[:$1]]의 {{PLURAL:$2|선택한 판}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|선택한 기록}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|선택한 기록}}:',
 'revdelete-text-text' => '삭제된 판은 여전히 문서 역사에 남게 되지만, 그 내용의 일부는 다른 사람들이 접근할 수 없게 됩니다.',
 'revdelete-text-file' => '삭제된 파일 버전은 계속 파일 역사에 남게 되지만, 내용의 일부는 다른 사람들이 접근할 수 없게 됩니다.',
 'logdelete-text' => '삭제된 로그 내용은 로그에 보여지겠지만, 내용의 일부는 다른 사람들이 접근할 수 없게 됩니다.',
index 3951212..b01635b 100644 (file)
@@ -981,8 +981,7 @@ $3 джанындан берилген сылтау: ''$2''",
 'revdelete-no-file' => 'Белгиленнген файл джокъду.',
 'revdelete-show-file-confirm' => '«<nowiki>$1</nowiki>» файлны $2 $3 датада кетерилген версиясына къараргъа излегенигизге ишексизмисиз?',
 'revdelete-show-file-submit' => 'Хоу',
-'revdelete-selected' => "'''[[:$1]] бетни {{PLURAL:$2|1=Сайланнган версия|сайланнган версиялары}}:'''",
-'logdelete-selected' => "'''Журналны {{PLURAL:$1|1=Сайланнган джазыу|сайланнган джазыулары}}:'''",
+'logdelete-selected' => 'Журналны {{PLURAL:$1|1=Сайланнган джазыу|сайланнган джазыулары}}:',
 'revdelete-confirm' => 'Тилейбиз, буну этерге излегенигизни, эсеблерин ангылагъаныгъызны, эм буну [[{{MediaWiki:Policy-url}}|джорукълагъа]] кёре этгенигизни билдиригиз.',
 'revdelete-suppress-text' => "Джашырыу '''джангыз''' бу турумлада этиледи:
 * Келишмеген энчи информация
index 9801a33..d1bcc16 100644 (file)
@@ -1013,7 +1013,7 @@ domet De dann donoh nit mieh met esu en Ömständ ze dun häs, wie de andere nam
 'noarticletext-nopermission' => 'Op dä Sigg es em Momang nix drop.
 Do kanns noh däm Tittel vun heh dä Sigg [[Special:Search/{{PAGENAME}}|em Tex op ander Sigge söhke]],
 udder en dä zopaß <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbööscher nohloore]</span>.',
-'missing-revision' => 'En Version $1 vun dä Sigg „{{PAGENAME}}“ jidd_et nit.
+'missing-revision' => 'En Version $1 vun dä Sigg „{{FULLPAGENAME}}“ jidd_et nit.
 
 Esu jät kütt för jewöhnlesch, wam_mer enem övverhollte Lengk ob en Sigg follesch, di zweschedren fottjeschmeße woode es.
 Mieh doh drövver fengk mer em [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Logbooch vum Sigge Fottschmiiße].',
@@ -1275,8 +1275,7 @@ Als ene Wiki_Köbes kanns De de Ungerscheide ävver aankike wann De wells.",
 'revdelete-no-file' => 'De aanjejovve Dattei jidd_et nit.',
 'revdelete-show-file-confirm' => 'Beß De sescher, dat De de fottjeschmeße Version vun dä Dattei „<nowiki>$1</nowiki>“ vum $2 oö $3 Uhr aanloore wells?',
 'revdelete-show-file-submit' => 'Lohß Jonn!',
-'revdelete-selected' => "'''{{PLURAL:$2|Ein usjewählte Version|$2 usjewählte Versione|Kein Version usjewählt}} vun [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Dä ußjewählte Logboch-Endrach|De Ußjewählte Logboch-Endrähsch}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Dä ußjewählte Logboch-Endrach|De Ußjewählte Logboch-Endrähsch}}:',
 'revdelete-confirm' => 'Bes esu joot un doon dat beschtääteje, un donn domet ongerschriive, dat De dat donn wells, dat De weiß, wat dobei eruß kütt, un dat De dat och noh de [[{{MediaWiki:Policy-url}}|Rääjelle]] deihß.',
 'revdelete-suppress-text' => "Dat sullt '''blooß''' jedonn wäde för:
 * onjesäzlesche Aanjaabe
index ca20257..8660188 100644 (file)
@@ -808,7 +808,6 @@ Titulus: '''({{int:cur}})''' = dissimilis ab emendatione novissima,
 'revisiondelete' => 'Emendationem delere',
 'revdelete-nooldid-title' => 'Emendatio-scopus invalida',
 'revdelete-show-file-submit' => 'Sic',
-'revdelete-selected' => "'''{{PLURAL:$2|Emendatio selecta|Emendationes selectae}} paginae [[:$1]]:'''",
 'revdelete-legend' => 'Modificare cohibitiones visibilitatis',
 'revdelete-hide-text' => 'Textus emendationis',
 'revdelete-hide-image' => 'Celare contentum fasciculi',
index 830d666..8ebb1d1 100644 (file)
@@ -916,7 +916,7 @@ Dir kënnt op anere Säiten no [[Special:Search/{{PAGENAME}}|dësem Säitentitel
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an den entspriechende Logbicher nokucken] oder [{{fullurl:{{FULLPAGENAME}}|action=edit}} sou eng Säit uleeën]</span>.',
 'noarticletext-nopermission' => 'Elo ass keen Text op dëser Säit.
 Dir kënnt op anere Säiten [[Special:Search/{{PAGENAME}}|no dësem Säitentitel sichen]], oder <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an de Logbicher sichen]</span>, mä Dir hutt net déi néideg Rechter fir dës Säit unzeleeën.',
-'missing-revision' => 'D\'Versioun #$1 vun der Säit mam Numm "{{PAGENAME}}" gëtt et net.
+'missing-revision' => 'D\'Versioun #$1 vun der Säit mam Numm "{{FULLPAGENAME}}" gëtt et net.
 
 Dat geschitt normalerweis wann Dir op e vereelste Link vun enger Versioun vun enger Säit klickt déi geläscht ginn ass.
 Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Logbuch vum Läschen].',
@@ -1139,8 +1139,7 @@ Dir kënnt dësen Ënnerscheed gesinn; Detailer fannt Dir am [{{fullurl:{{#Speci
 'revdelete-no-file' => 'De Fichier deen ugi war gëtt et net.',
 'revdelete-show-file-confirm' => 'Sidd Dir sécher datt Dir déi geläschte Versioun vum Fichier "<nowiki>$1</nowiki>" vum $2 ëm $3 gesi wëllt?',
 'revdelete-show-file-submit' => 'Jo',
-'revdelete-selected' => "'''{{PLURAL:$2|Gewielt Versioun|Gewielt Versioune}} vu(n) [[:$1]] :'''",
-'logdelete-selected' => "'''Ausgewielten {{PLURAL:$1|Evenement|Evenementer}} aus dem Logbuch:'''",
+'logdelete-selected' => 'Ausgewielten {{PLURAL:$1|Evenement|Evenementer}} aus dem Logbuch:',
 'revdelete-text-others' => 'Aner Administrateuren op {{SITENAME}} kënnen nach ëmmer de verstoppten Inhalt gesinn an en iwwer deeselwechten Interface nees restauréieren, ausser wann zousätzlech Limitatiounen agestallt sinn.',
 'revdelete-confirm' => "Confirméiert w.e.g. datt Dir dat maache wëllt, datt Dir d'Konsequenze verstitt an datt Dir dëst an Aklang mat de [[{{MediaWiki:Policy-url}}|Richtlinne]] maacht.",
 'revdelete-suppress-text' => "Ënnerdréckung sollt '''nëmmen''' an dëse Fäll benotzt ginn:
index b500d75..739d070 100644 (file)
@@ -968,8 +968,7 @@ achtergrönj zeen meugelik te vinjen in 't [{{fullurl:{{#Special:Log}}/suppress|
 'revdelete-no-file' => "'d Aangegaeve bestandj besteit neet.",
 'revdelete-show-file-confirm' => 'Wèt se zeker det se de gewösjdje versie ven \'t bestandj "<nowiki>$1</nowiki>" ven $2 óm $3 wils bekieke?',
 'revdelete-show-file-submit' => 'Jao',
-'revdelete-selected' => "'''Geselecteerde {{PLURAL:$2|bewerking|bewerkinge}} van '''[[:$1]]''':'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Geselecteerde log gebeurtenis|Geselecteerde log gebeurtenisse}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Geselecteerde log gebeurtenis|Geselecteerde log gebeurtenisse}}:',
 'revdelete-confirm' => "Bevestig des se dit wils doon, des se de consequenties begrieps en des se dit deis in euvereinstömming mit 't geljendj [[{{MediaWiki:Policy-url}}|beleid]].",
 'revdelete-suppress-text' => "Versies verbèrge deentj '''allein''' gebroek te waere in de volgende gevalle:
 * Ongepaste perseunlike informatie
index d31cfac..faef643 100644 (file)
@@ -379,6 +379,8 @@ $1',
 'myprivateinfoprotected' => 'شما حق ناریت دونسمنیا خصوصی نه ویرایشت بکید',
 'mypreferencesprotected' => 'شما حق ناریت ویجگی یا هنی تونه ویرایشت بکید',
 'ns-specialprotected' => 'بلگیا ویجه نتونن ویرایشت بوئن',
+'invalidtitle-knownnamespace' => 'نوم نامعتور سی نوم جا "$2" و نیسه "$3"',
+'invalidtitle-unknownnamespace' => 'نوم نامعتور سی شماره نومجا ناشناس $1 و نیسه "$2"',
 'exception-nologin' => 'نبوئه وارد بوئيد',
 'exception-nologin-text-manual' => 'خواهشمنیدم که $1 تونسه بوئه د ای بلگه دسرسی داشتوه یا کاری انجوم بیئه.',
 
@@ -421,6 +423,9 @@ $1',
 'gotaccountlink' => 'اومائن',
 'userlogin-resetlink' => 'جزییات وامین اومائن تونه د ویر بردیته',
 'userlogin-resetpassword-link' => 'پاسورد د ویرتو رئته؟',
+'userlogin-helplink2' => 'هومیاری وا مین اومائن',
+'userlogin-loggedin' => 'شما ایسه د عنوان {{جنس:$1|$1}} اومایته وا مین.
+د فرم هاری سی وا مین اومائن وه عنوان کارور هنی استفاده بکیتو.',
 'userlogin-createanother' => 'يه گل حساوهنی راست بكيد',
 'createacct-join' => 'دونسمنيا دباره خوتونه د هار وارد بكيد',
 'createacct-another-join' => 'دونسمنیا یه گل حساو د هار وارد بکید',
@@ -484,13 +489,19 @@ $1',
 $1 لطفن سی تلاش هنی صبر بکید',
 'login-abort-generic' => 'اومائن وامین تو شکست حرد-شکست حرده',
 'loginlanguagelabel' => 'زون:$1',
+'pt-login' => 'وا مین اومائن',
+'pt-login-button' => 'وا مین اومائن',
+'pt-createaccount' => 'يه گل حساو راست بكيد',
+'pt-userlogout' => 'د سيستم دراومائن',
 
 # Email sending
 'php-mail-error-unknown' => "خطا ناشناس مئن تاوع  PHP's mail()",
 'user-mail-no-addy' => 'سی کل کردن ایمیل بی نشونه ایمیل صورت گرته',
+'user-mail-no-body' => 'سی کل کردن ایمیل وا مینونه حالی یا کؤچک بیئن سی دلیل غیر علقمنی تلاش بکید.',
 
 # Change password dialog
 'changepassword' => 'پاسورد نه آلشت بكيت',
+'resetpass_announce' => 'سی تموم کردن وا مین اومائن، شما باید یه گل پاسورد هنی وارد بکیتو.',
 'resetpass_header' => 'پاسورد حساوتونه آلشت بکید',
 'oldpassword' => 'پاسورد قدیمی:',
 'newpassword' => 'پاسورد تازه:',
@@ -699,9 +710,11 @@ $2',
 'rev-delundel' => 'آلشت وضئيت ديئن',
 'rev-showdeleted' => 'نشو دائن',
 'revisiondelete' => 'پاک کردن/زنه کردن وانئریا',
+'revdelete-nooldid-title' => 'وانیری تمارزی بیه نامعتوره',
 'revdelete-no-file' => 'فایل مشقص بیه وجود ناره.',
 'revdelete-show-file-submit' => 'هری',
-'revdelete-selected' => "'''{{جمی:$2|وانیری انتخاو بیه|وانیریا انتخاو بیه}} د[[:$1]]:'''",
+'revdelete-selected-text' => '{{جمی:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:',
+'revdelete-selected-file' => '{{جمی:$1|وانیری گل گر بیه|وانیری گل گر بیه}} د [[:$2]]:',
 'revdelete-hide-text' => 'متن دوواره دیئن',
 'revdelete-hide-image' => 'چی یا مئن فایل قام کو',
 'revdelete-hide-name' => 'آرمون و انجوم گر نه قام بکید',
@@ -805,6 +818,7 @@ $2',
 'powersearch-toggleall' => 'همه',
 'powersearch-togglenone' => 'هيش كوم',
 'search-external' => 'پی جوری د در',
+'search-error' => 'یه گل خطا سی اوسنی که پی جوری می کردیت اتفاق افتائه:$1',
 
 # Preferences page
 'preferences' => 'خصوصيات هنی',
@@ -854,6 +868,7 @@ $2',
 'prefs-namespaces' => 'نوم جایا',
 'default' => 'پيش فرض',
 'prefs-files' => 'فايلا',
+'prefs-common-css-js' => ' سی اس اس/جاوا اسکریپت بهر بیه سی همه پوسه یا:',
 'prefs-emailconfirm-label' => 'مئکم کردن ایمیل:',
 'youremail' => 'ايميل:',
 'username' => '{{جنس:$1|نوم کاروری}}:',
@@ -894,6 +909,7 @@ $2',
 'email-address-validity-invalid' => 'یه گل نشونی ایمیل خو وارد بکید',
 
 # User rights
+'userrights-lookup-user' => 'دسه یا کاروری نه دیوون داری بکیت',
 'userrights-user-editname' => 'نوم كاروری ته وارد كو',
 'editusergroup' => 'ویرایشت گرویا کاروری',
 'userrights-editusergroup' => 'ویرایشت گرویا کاروری',
@@ -927,6 +943,8 @@ $2',
 # Rights
 'right-read' => 'حنن بلگیا',
 'right-edit' => 'ویرایشت بلگیا',
+'right-createtalk' => 'بلگه یا چک چنه نه راس بکید',
+'right-createaccount' => 'یه گل حساو کاروری تازه راس بکیت',
 'right-move' => 'بلگه یا جا وه جا کو',
 'right-move-subpages' => 'بلگه یا و زیر بلگه یا شونه جا وه جا کو',
 'right-move-rootuserpages' => 'بلگه یا ریشه ای کارور نه جا وه جا کو',
@@ -1008,11 +1026,23 @@ $2',
 'rcnotefrom' => 'د هار آلشتیا د $2 هیئن(د بال د $1 نشون دئه بیه)',
 'rclistfrom' => 'آلشتیا تازه ایی که وا $1 شرو بیه نشونش بئه',
 'rcshowhideminor' => 'ويرايشتيا کؤچک $1',
+'rcshowhideminor-show' => 'نشو دئن',
+'rcshowhideminor-hide' => 'قام کردن',
 'rcshowhidebots' => '$1 رواتيا یا بوتيا',
+'rcshowhidebots-show' => 'نشو دئن',
+'rcshowhidebots-hide' => 'قام کردن',
 'rcshowhideliu' => '$1 کاروريا ثوت نام کرده',
+'rcshowhideliu-show' => 'نشو دئن',
+'rcshowhideliu-hide' => 'قام کردن',
 'rcshowhideanons' => '$1 کاروريا ناشناس',
+'rcshowhideanons-show' => 'نشو دئن',
+'rcshowhideanons-hide' => 'قام کردن',
 'rcshowhidepatr' => '$1 ویرایشتیا تیه پرس بیه',
+'rcshowhidepatr-show' => 'نشو دئن',
+'rcshowhidepatr-hide' => 'قام کردن',
 'rcshowhidemine' => 'ويرايشتيا مه$1',
+'rcshowhidemine-show' => 'نشو دئن',
+'rcshowhidemine-hide' => 'قام کردن',
 'rclinks' => 'آخرین آلشتیا $1 نشو بیه د اخرین روزیا $2',
 'diff' => 'فرخ',
 'hist' => 'ويرگار',
@@ -1055,6 +1085,7 @@ $2',
 'filereuploadsummary' => 'آلشتیا فایل:',
 'filesource' => 'سرچشمه:',
 'uploadedfiles' => 'جانیایا سواربیه',
+'ignorewarnings' => 'د هر زنهار تیه پوشی کو',
 'badfilename' => 'نوم جانیا د "$1" آلشت بیه.',
 'empty-file' => 'فایلی که دئی ته حالی بیه.',
 'file-too-large' => 'فایلی که دئی ته فره گپ بی.',
@@ -1111,6 +1142,7 @@ $2',
 'http-read-error' => 'خطا د حنن اچ تی تی پی.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
+'upload-curl-error6' => 'نبوئه د یو آر ال برسیت',
 'upload-curl-error28' => 'تموم بیئن مئلت سی سوار کرد',
 
 'license' => 'ليانس دار بيئن',
@@ -1130,6 +1162,7 @@ $2',
 'listfiles_user' => 'كارور',
 'listfiles_size' => 'انازه',
 'listfiles_count' => 'نسقیا',
+'listfiles-show-all' => 'شومل نسقه یا نهاتری عسگیا',
 'listfiles-latestversion' => 'نسقه تازه',
 'listfiles-latestversion-yes' => 'هری',
 'listfiles-latestversion-no' => 'نه',
@@ -1208,6 +1241,7 @@ $2',
 'statistics-articles' => 'بلگه یا مینونه',
 'statistics-pages' => 'بلگیا',
 'statistics-files' => 'جانیا یا سوار بیه',
+'statistics-edits-average' => 'میانگین ویرایشت یا سی هر بلگه',
 'statistics-views-total' => 'همه نه بوینیت',
 'statistics-views-peredit' => 'هر ویرایشت نه بوینیت',
 'statistics-users' => 'ثوت نام بیه [[ویجه:نوم گه کاروریا|کاروریا]]',
@@ -1253,12 +1287,20 @@ $2',
 'prefixindex' => 'همه بلگيا وا پيشون',
 'shortpages' => 'بلگه یا کؤچک',
 'longpages' => 'بلگه یا گپ',
+'deadendpages' => 'بلگه یا نابود بیئنی',
 'protectedpages' => 'بلگه یا حفاظت بيه',
+'protectedpages-page' => 'بلگه',
+'protectedpages-expiry' => 'تموم بیه آ',
+'protectedpages-performer' => 'کارور حفاظت بیه',
+'protectedpages-reason' => 'دلیل',
+'protectedpages-unknown-timestamp' => 'ناشناس',
+'protectedpages-unknown-performer' => 'کارور ناشناس',
 'listusers' => 'نوم گه کارور',
 'listusers-editsonly' => 'فقط کاروریایی که ویرایشت می کن نشو بیه',
 'usercreated' => '{{جنسیت:$3|راس بیه}}د $1 at $2',
 'newpages' => 'بلگيا نو',
 'newpages-username' => 'نوم كاروری:',
+'ancientpages' => 'بلگه یا نهاتر',
 'move' => 'جاوه جا بوئيت',
 'movethispage' => 'ای بگله نه جا وه جا كو',
 'pager-newer-n' => '{{جمی:$1|وانها تر 1وانها تر $1}}',
@@ -1277,16 +1319,23 @@ $2',
 'allpages' => 'همه بلگيا',
 'alphaindexline' => '$1 د
 $2',
+'nextpage' => 'بلگه نهایی($1)',
+'prevpage' => 'بلگه دمایی($1)',
 'allarticles' => 'همه بلگيا',
 'allpagessubmit' => 'رو',
 'allpagesbadtitle' => 'عنوان بلگه حاسته بیه معتور نی،یا  یه گل مئن زونی یا مئن ویکی عنوان غلطه.
 یه شایت شومل یکی با یا بیشتر کاراکتریا نبوئه که سی ای موضوعیا استفاده بوئن',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'دیئن آخری.',
+
 # Special:Categories
 'categories' => 'دسه يا',
 
 # Special:DeletedContributions
 'deletedcontributions' => 'هومیاریا پاک بیه کارور',
+'deletedcontributions-title' => 'هومیاریا پاک بیه کارور',
+'sp-deletedcontributions-contribs' => 'هومیاریا',
 
 # Special:LinkSearch
 'linksearch-ns' => 'نوم جا:',
@@ -1294,21 +1343,47 @@ $2',
 'linksearch-line' => '$1 داره د $2 هوم پیوند بوئه',
 
 # Special:ListUsers
+'listusers-submit' => 'نشو دئن',
 'listusers-noresult' => 'هیچ کاروری پیدا نبی',
+'listusers-blocked' => '(قلف بيه)',
 
 # Special:ActiveUsers
 'activeusers' => 'نوم گه کاروریا کارکو',
+'activeusers-hidebots' => 'بوتیا قام کو',
+'activeusers-hidesysops' => 'دیوون داریا نه قام کو',
 'activeusers-noresult' => 'هیچ کاروری پیدا نبی',
 
 # Special:ListGroupRights
+'listgrouprights-group' => 'دسه',
+'listgrouprights-rights' => 'حقوقیا',
 'listgrouprights-members' => '(نوم گه اندومیا)',
+'listgrouprights-addgroup-all' => 'همه گرویا نه اضاف کو',
+'listgrouprights-removegroup-all' => 'همه گرویا نه وردار',
+'listgrouprights-addgroup-self' => ' {{جمی:$2|گروه|گرویا}} نه د حساو: $1 اضاف کو',
 
 # Email user
+'mailnologin' => 'هیپچ نشونی یی کل نبیه',
 'emailuser' => 'ای كارور نه ايميل كو',
 'emailuser-title-target' => 'ایمیل سی ای {{جنس:$1|کارور}}',
+'emailuser-title-notarget' => 'ایمیل کارور',
 'emailpage' => 'ایمیل کارور',
 'defemailsubject' => '{{نوم سیل جا}} ایمیل د کارور "$1"',
+'usermaildisabled' => 'ایمیل کارور د کار افتائه',
+'noemailtitle' => 'هیچ نشونی ایمیلی نئ',
 'emailusername' => 'نوم كاروری:',
+'emailusernamesubmit' => 'دئن',
+'emailfrom' => 'د:',
+'emailto' => 'سی:',
+'emailsubject' => 'سرون:',
+'emailmessage' => 'پيغوم:',
+'emailsend' => 'كل بيه',
+'emailccme' => 'یه گل وردار د پیغوم مه نه سیم ایمیل کو.',
+'emailccsubject' => ' پیغومتو سی $1:$2 ورداشته بی',
+'emailsent' => 'ایمیل کل بیه',
+'emailsenttext' => 'پیغوم ایمیلی تو کل بیه.',
+
+# User Messenger
+'usermessage-editor' => 'پیغوم فرسن سیستم',
 
 # Watchlist
 'watchlist' => 'سیل برگ',
@@ -1317,7 +1392,9 @@ $2',
 'watchnologin' => 'وارد نبیه',
 'watchnologintext' => 'شما سی آلشت دئن سیل برگتو با [[ویجه:وامین اومائن کارور|وامین اومائه]]',
 'watch' => 'سيل كردن',
+'watchthispage' => 'ديئن ای بلگه',
 'unwatch' => 'ديه نبيه',
+'unwatchthispage' => 'واداشتن دیئن',
 'notanarticle' => 'مینونه هیچ بلگه ای نئ',
 'watchlist-details' => '{{جمی:$1|$1 بلگه|$1 بلگیا}} د سیل برگتو هیش بلگه قسه کردن نی .',
 'wlheader-enotif' => 'وارسیاری ایمیل فعال بیه.',
@@ -1325,18 +1402,37 @@ $2',
 'wlshowlast' => 'آخرین$1 ساعتیا $2و روزیا $3 نشو بیئه',
 'watchlist-options' => 'گزینیا سیل برگ',
 
+# Displayed when you click the "watch" button and it is in the process of watching
+'watching' => 'د حال دیئن...',
+'unwatching' => 'د حال ندیئن...',
+
 'enotif_mailer' => '{{نوم سیلجا}} وارسیاری ایمیل زننه',
 'enotif_reset' => 'همه بلگه یا دیئه بینه نشودار بکید',
 'enotif_impersonal_salutation' => '{{نوم سیلجا}} کارور',
 'enotif_lastvisited' => 'همه آلشتیا$1 د اوسه که شما د آخرین بار دیئته بوینیت.',
+'enotif_anon_editor' => 'کارو ناشناس$1',
 
 # Delete
+'deletepage' => 'پاک کردن بلگه',
+'confirm' => 'مئكم كردن',
 'excontent' => 'مینونه :"$1" بی',
 'exbeforeblank' => 'مینونه حالی دمایی:"$1" بی',
+'exblank' => 'بلگه حال بی',
+'delete-confirm' => 'پاک کردن"$1"',
+'delete-legend' => 'پاك كردن',
 'actioncomplete' => 'عملكرد كامل بيه',
 'actionfailed' => 'عملكرد شكست حرده',
 'dellogpage' => 'لاگ پاك كردن',
 'deletionlog' => 'پهرستنومه پاک بیئن',
+'deletecomment' => 'دليل:',
+'deleteotherreason' => 'دليليا هنی:',
+'deletereasonotherlist' => 'دلیل هنی',
+'deletereason-dropdown' => '* دلیلیا پاک کردن رسم بیه
+** اسپم
+** خراوکاری
+** رعایت نبین کپی رایت
+** درحاست نیسنه
+** نهاورگشت شکست حرده',
 
 # Rollback
 'rollbacklink' => 'ورگشتن',
@@ -1356,7 +1452,9 @@ $2',
 'restriction-type' => 'دسرسی:',
 
 # Restrictions (nouns)
+'restriction-edit' => 'ويرايشت',
 'restriction-move' => 'جاوه جا بوئيت',
+'restriction-create' => 'راس كردن',
 'restriction-upload' => 'سوار کرد',
 
 # Restriction levels
@@ -1365,10 +1463,12 @@ $2',
 # Undelete
 'undeletelink' => 'بوين/دوواره آماده با',
 'undeleteviewlink' => 'ديئن',
+'undeletecomment' => 'دليل:',
 'cannotundelete' => 'زنه کردن انجوم نبی:$1',
 'undelete-search-title' => 'بلگه یا پاک بیه نه پی جوری کو',
 'undelete-search-submit' => 'پی جوری',
 'undelete-error-short' => 'خطا پاک نبیئن جانیا:$1',
+'undelete-show-file-submit' => 'هری',
 
 # Namespace form on various pages
 'namespace' => 'نوم جا:',
@@ -1415,6 +1515,7 @@ $2',
 # Block/unblock
 'block' => 'منع کارور',
 'blockip' => 'منع کارور',
+'ipbreason' => 'دليل:',
 'ipbother' => 'وخت هنی:',
 'ipboptions' => '2 ساعتیا:2 ساعت,1 رو:1 رو,3 روزا:3 رو,1 هفته:1 هفته,2 هفته یا:2 هفته,1 ما:1 ما,3 ما:3 میا,6 ما:6 مایا,1 سال:1سال,بی حساو:بی حساو',
 'ipbhidename' => 'نوم کاروری نه سی ویرایشت یا و نوم گه یا قام کو',
index 8c3c19e..ab4c1ed 100644 (file)
@@ -1085,8 +1085,7 @@ Kaip administratorius, jūs galite ją pamatyti; daugiau detalių gali būti [{{
 'revdelete-no-file' => 'Nurodytas failas neegzistuoja.',
 'revdelete-show-file-confirm' => 'Ar tikrai norite peržiūrėti ištrintą failo „<nowiki>$1</nowiki>“ $2 $3 versiją?',
 'revdelete-show-file-submit' => 'Taip',
-'revdelete-selected' => "'''{{PLURAL:$2|Pasirinkta [[:$1]] versija|Pasirinktos [[:$1]] versijos}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Pasirinktas istorijos įvykis|Pasirinkti istorijos įvykiai}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Pasirinktas istorijos įvykis|Pasirinkti istorijos įvykiai}}:',
 'revdelete-confirm' => 'Prašome patvirtinti, kad jūs tai ketinate padaryti, kad jūs suprantate padarinius, ir kad jūs tai darote pagal [[{{MediaWiki:Policy-url}}|politiką]].',
 'revdelete-suppress-text' => "Ištrynimas turėtų būti taikomas '''tik''' šiais atvejais:
 * Netinkama asmeninė informacija
index c51cf11..e9dad9c 100644 (file)
@@ -890,8 +890,7 @@ Sīkāku informāciju var atrast [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'revdelete-nooldid-title' => 'Nederīga mērķa versija',
 'revdelete-no-file' => 'Norādītais fails neeksistē.',
 'revdelete-show-file-submit' => 'Jā',
-'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|izvēlētā versija|izvēlētās versijas}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Izvēlētais reģistra ieraksts|Izvēlētie reģistra ieraksti}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Izvēlētais reģistra ieraksts|Izvēlētie reģistra ieraksti}}:',
 'revdelete-confirm' => 'Lūdzu apstiprini, ka Tu zini, ko dari, Tu apzinies sekas, tāpat Tu to dari saskaņā ar vadlīnijām.',
 'revdelete-suppress-text' => "Paslēpšanu izmantot vienīgi šādos gadījumos:
 * potenciāli apmelojoša informācija
index fa7adf3..17c2657 100644 (file)
@@ -915,8 +915,7 @@ $2',
 'revdelete-no-file' => '指之檔無存也。',
 'revdelete-show-file-confirm' => '爾察於$2 $3刪「$1」檔之審?',
 'revdelete-show-file-submit' => '善',
-'revdelete-selected' => "'''審[[:$1]]已擇$2:'''",
-'logdelete-selected' => "'''已擇誌$1:'''",
+'logdelete-selected' => '已擇誌$1:',
 'revdelete-confirm' => '爾確作之,解之果焉,合之[[{{MediaWiki:Policy-url}}|策]]矣。',
 'revdelete-suppress-text' => "'''限'''於此壓:
 * 無適之個訊
index 48820b9..4ca0803 100644 (file)
@@ -839,8 +839,7 @@ $3 द्वारा देल कारण अछि ''$2''",
 'revdelete-no-file' => 'विषिष्ट संचिका अछिये नै।',
 'revdelete-show-file-confirm' => 'की अहाँ आश्वस्त छी जे अहाँ संचिकाक मेटाएल संशोधन देखऽ चाहै छी "<nowiki>$1</nowiki>" ऐ सँ $2 एतऽ $3?',
 'revdelete-show-file-submit' => 'हँ',
-'revdelete-selected' => "'''{{PLURAL:$2|चुनल संशोधन|चुनल संशोधन सभ}} एकर [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|चुनल वृत्तलेख घटना|चुनल वृत्तलेख घटना सभ}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|चुनल वृत्तलेख घटना|चुनल वृत्तलेख घटना सभ}}:',
 'revdelete-confirm' => 'कृपा कऽ आश्वस्त भऽ जाउ जे अहाँ ई करऽ चाहै छी, अहाँकेँ एकर परिणामक जनतब अछि, आ अहाँ एकरा [[{{MediaWiki:Policy-url}}|निअम]] क अनुसार कऽ रहल छी।',
 'revdelete-suppress-text' => "दबाबैबला काज '''मात्र''' ऐ सभ स्थितिमे प्रयोग करू:
 * मानहानिक सम्भावनाबला सूचना
index f363cbf..08f9915 100644 (file)
@@ -827,8 +827,7 @@ Rinciane teyeng ditemokna nang [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAG
 'revdelete-no-file' => 'Berkas sing dituju ora ana.',
 'revdelete-show-file-confirm' => 'Apa rika wis mantep arep ndeleng revisi sing wis dibusek nggone berkas "<nowiki>$1</nowiki>" sekang tanggal $2 jam $3?',
 'revdelete-show-file-submit' => 'Ya',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisi kepilih}} sekang [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Log kepilih|Log kepilih}} kanggo:'''",
+'logdelete-selected' => '{{PLURAL:$1|Log kepilih|Log kepilih}} kanggo:',
 'revdelete-legend' => 'Atur watesan',
 'revdelete-hide-text' => 'Tèks revisi',
 'revdelete-hide-image' => 'Umpetna isi berkas',
index 1e26e4d..38a4b4c 100644 (file)
@@ -878,8 +878,7 @@ $3 макссь туфталсь - ''$2''",
 'revdelete-nooldid-title' => 'Аф лац верзиень кочкама',
 'revdelete-nooldid-text' => 'Тон ашеть кочка верзие эли верзиет  конатнень мархта эряви тянь тиемс, илякс ня верзиетне ашет эли тонт тяряфнят кяшемс тяниень верзиеть.',
 'revdelete-show-file-submit' => 'Ина',
-'revdelete-selected' => "''''''$1:'''-нь {{PLURAL:$2|Кочкаф верзиец|Кочкаф верзиенза}}'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Кочкаф сёрматфтомась|кочкаф сёрматфтоматне}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Кочкаф сёрматфтомась|кочкаф сёрматфтоматне}}:',
 'revdelete-legend' => 'Арафтомс няемга оторхне',
 'revdelete-hide-text' => 'Кяшемс тя лопать верзиенц',
 'revdelete-hide-image' => 'Кяшемс файлхнень потмосна',
index 019cd5c..1623701 100644 (file)
@@ -943,7 +943,7 @@ Azonao atao ny [[Special:Search/{{PAGENAME}}|Tadiavo ny momba ny {{PAGENAME}}]].
 'noarticletext-nopermission' => "Mbola tsy misy lahatsoratra ao amin'io pejy io.
 
 Azonao atao ny [[Special:Search/{{PAGENAME}}|mikaroka ity lohateny ity]] eny amin'ny pejy hafa na <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mitady ao amin'ny laogy misy fifandraisana]</span>, fa tsy azonao atao ny mamorona ity pejy ity.",
-'missing-revision' => 'Tsy misy ny santiôna #$1 ny pejy "{{PAGENAME}}".
+'missing-revision' => 'Tsy misy ny santiôna #$1 ny pejy "{{FULLPAGENAME}}".
 
 Mitranga izany rehefa manaraka rohin-tantara tola mankany amina pejy voafafa. Ahitana fampahalalana fanampiny ny  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} laogim-pamafana].',
 'userpage-userdoesnotexist' => 'Mbola tsy nisoratra anarana ato i « <nowiki>$1</nowiki> ». Marino raha tena hamorona ity pejy ity ianao.',
@@ -1170,8 +1170,7 @@ tsy misy ilay izy, na ny santiôna ankehitriny no andramana asitrika.',
 'revdelete-no-file' => 'Tsy misy ilay rakitra hofafàna.',
 'revdelete-show-file-confirm' => "Tapa-kevitra hamafa ny ''revision''-n'i rakitra <nowiki>$1</nowiki> tamin'ny $2 tamin'ny $3 ve ianao ?",
 'revdelete-show-file-submit' => 'Eny',
-'revdelete-selected' => "'''{{PLURAL:$2|Votoatiny nosafidiana|Votoatiny nosafidiana}}n'i '''[[:$1]]''' :'''",
-'logdelete-selected' => "'''{{PLURAL:$1||}}Laogy voafidy :'''",
+'logdelete-selected' => '{{PLURAL:$1||}}Laogy voafidy :',
 'revdelete-confirm' => 'Amafiso eto ny hevitrao raha hanao io ianao, raha azonao sary an-tsaina ny mety ho vokany, ary raha araka ny [[{{MediaWiki:Policy-url}}|fepetra mihatra]] ny zavatra ataonao.',
 'revdelete-suppress-text' => "Ny famafàna pejy dia ampiasaina rehefa :
 * Fampahalalana mampiely lainga
index 1b6cc2c..b5e9702 100644 (file)
@@ -835,7 +835,7 @@ Jikok Sanak adolah pangguno anonim dan maraso mandapek komentar nan indak lamak
 Sanak dapek [[Special:Search/{{PAGENAME}}|malakuan pancarian untuak judul laman ko]] di laman-laman lain, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancari log takaik], atau [{{fullurl:{{FULLPAGENAME}}|action=edit}} manyuntiang laman iko]</span>.',
 'noarticletext-nopermission' => 'Kini ko indak ado teks dalam laman ko.
 Sanak dapek [[Special:Search/{{PAGENAME}}|malakukan pancarian untuak judul laman ko]] di laman lain, atau <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancahari log takaik] </span>, tapi Sanak indak punyo izin untuak mambuek laman ko.',
-'missing-revision' => 'Revisi $1 di laman nan banamo "{{PAGENAME}}" ko indak ado.
+'missing-revision' => 'Revisi $1 di laman nan banamo "{{FULLPAGENAME}}" ko indak ado.
 
 Hal iko biasonyo disababkan dek pautan sijarah nan alah kadaluarsa ka laman nan alah diapuih.
 Rinciannyo dapek dicaliak di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log pangapuihan].',
@@ -1059,8 +1059,7 @@ Sanak dapek malieknyo; rinciannyo mungkin ado di [{{fullurl:{{#Special:Log}}/del
 'revdelete-no-file' => 'Berkas nan dituju indak basobok.',
 'revdelete-show-file-confirm' => 'Apokah Sanak yakin nio mancaliak revisi nan alah dihapuih dari berkas "<nowiki>$1</nowiki>" per $3, $2?',
 'revdelete-show-file-submit' => 'Yo',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisi piliahan}} dari [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Log piliahan}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Log piliahan}}:',
 'revdelete-confirm' => 'Tolong konfirmasi baso Sanak samemang bamakasuik malakuan iko, mamahami konsekuensinyo, dan baso Sanak malakuannyo sasuai jo [[{{MediaWiki:Policy-url}}|kabijakan]].',
 'revdelete-suppress-text' => "Panyambunyian revisi '''hanyo''' buliah digunoan untuak kasus-kasus barikuik:
 * Informasi paribadi nan indak patuik
index f7b2576..6d7a3e3 100644 (file)
@@ -1099,7 +1099,7 @@ $2
 или да [{{fullurl:{{FULLPAGENAME}}|action=edit}} ја создадете]</span>.',
 'noarticletext-nopermission' => 'Таква страница сè уште не постои.
 Можете да проверите [[Special:Search/{{PAGENAME}}|дали насловот се споменува]] во други статии или пак да <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} пребарате поврзаните дневници]</span>, но немате дозвола да ја создадете страницата.',
-'missing-revision' => 'Не ја пронајдов ревизијата бр. $1 на страницата со наслов „{{PAGENAME}}“.
+'missing-revision' => 'Не ја пронајдов ревизијата бр. $1 на страницата со наслов „{{FULLPAGENAME}}“.
 
 Ова обично се должи на застарена врска за разлики што води кон избришана страница.
 Повеќе подробности ќе најдете во [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневникот на бришења].',
@@ -1337,8 +1337,9 @@ $3 ја наведе следнава причина: ''$2''",
 'revdelete-no-file' => 'Наведената податотека не постои.',
 'revdelete-show-file-confirm' => 'Дали сакате да ја погледнете избришаната ревизија на податотеката „<nowiki>$1</nowiki>“ од $2 во $3?',
 'revdelete-show-file-submit' => 'Да',
-'revdelete-selected' => "'''{{PLURAL:$2|Избрана ревизија|Избрани ревизии}} од [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Одбран настан од дневник|Одбрани настани од дневник}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Избрана ревизија|Избрани ревизии}} на [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Избрана податотечна верзија|Избрани податотечни верзии}} на [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Одбран настан од дневник|Одбрани настани од дневник}}:',
 'revdelete-text-text' => 'Избришаните ревизии сепак се појавуваат во историјата, но делови од нивната содржина ќе бидат недостапни за јавноста.',
 'revdelete-text-file' => 'Избришаните верзии на податотеките сепак се појавуваат во нејзината историја, но делови од нивната содржина ќе бидат недостапни за јавноста.',
 'logdelete-text' => 'Избришаните дневнички ставки сепак се појавуваат во дневниците, но делови од нивната содржина ќе бидат недостапни за јавноста.',
index c76bc4f..2ce31c8 100644 (file)
@@ -1067,7 +1067,7 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 താങ്കൾക്ക് മറ്റുതാളുകളിൽ [[Special:Search/{{PAGENAME}}|ഇതേക്കുറിച്ച് അന്വേഷിക്കുകയോ]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ബന്ധപ്പെട്ട രേഖകൾ പരിശോധിക്കുകയോ], [{{fullurl:{{FULLPAGENAME}}|action=edit}} ഈ താൾ തിരുത്തുകയോ ചെയ്യാവുന്നതാണ്]</span>.',
 'noarticletext-nopermission' => 'ഇപ്പോൾ ഈ താളിൽ എഴുത്തുകളൊന്നും ഇല്ല.
 താങ്കൾക്ക് മറ്റു താളുകളിൽ [[Special:Search/{{PAGENAME}}|ഈ താളിന്റെ തലക്കെട്ടിനായി തിരയാവുന്നതാണ്‌]], അല്ലെങ്കിൽ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ബന്ധപ്പെട്ട രേഖകൾ പരിശോധിക്കാവുന്നതാണ്‌]</span>. പക്ഷേ ഈ താൾ സൃഷ്ടിക്കാൻ താങ്കൾക്ക് അനുവാദമില്ല.',
-'missing-revision' => '"{{PAGENAME}}" എന്ന താളിന്റെ #$1 എന്ന നാൾപ്പതിപ്പ് നിലവിലില്ല.
+'missing-revision' => '"{{FULLPAGENAME}}" എന്ന താളിന്റെ #$1 എന്ന നാൾപ്പതിപ്പ് നിലവിലില്ല.
 
 മായ്ക്കപ്പെട്ട താളിന്റെ കാലഹരണപ്പെട്ട നാൾവഴി കണ്ണി ഉപയോഗിച്ചാലാണ് സാധാരണ ഇങ്ങനെ സംഭവിക്കുക.
 കൂടുതൽ വിവരങ്ങൾ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} മായ്ക്കൽ രേഖയിൽ] കാണാവുന്നതാണ്.',
@@ -1293,8 +1293,9 @@ $3 നൽകിയിരിക്കുന്ന കാരണം ''$2'' എന
 'revdelete-no-file' => 'നിർദ്ദേശിച്ച പ്രമാണം നിലവിലില്ല.',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" പ്രമാണത്തിന്റെ $2 തീയതി $3 -യ്ക്കു നിലനിന്നിരുന്ന മായ്ക്കപ്പെട്ട പതിപ്പു  കാണണം എന്നു താങ്കൾക്ക് ഉറപ്പാണോ?',
 'revdelete-show-file-submit' => 'അതെ',
-'revdelete-selected' => "'''[[:$1]] എന്ന താളിന്റെ {{PLURAL:$2|തിരഞ്ഞെടുത്ത പതിപ്പ്|തിരഞ്ഞെടുത്ത പതിപ്പുകൾ}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളത്|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളവ}}:'''",
+'revdelete-selected-text' => '[[:$2]] എന്ന താളിന്റെ {{PLURAL:$1|തിരഞ്ഞെടുത്ത നാൾപ്പതിപ്പ്|തിരഞ്ഞെടുത്ത നാൾപ്പതിപ്പുകൾ}}:',
+'revdelete-selected-file' => '[[:$2]] എന്ന പ്രമാണത്തിന്റെ {{PLURAL:$1|തിരഞ്ഞെടുത്ത പതിപ്പ്|തിരഞ്ഞെടുത്ത പതിപ്പുകൾ}}:',
+'logdelete-selected' => '{{PLURAL:$1|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളത്|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളവ}}:',
 'revdelete-text-text' => 'മായ്ക്കപ്പെട്ട നാൾപ്പതിപ്പുകൾ താളിന്റെ നാൾവഴിയിൽ കാണാവുന്നതായിരിക്കുമെങ്കിലും, അവയുടെ ഉള്ളടക്കത്തിന്റെ ചില ഭാഗങ്ങൾ പൊതുജനങ്ങൾക്ക് ലഭ്യമായിരിക്കണമെന്നില്ല.',
 'revdelete-text-file' => 'പ്രമാണത്തിന്റെ മായ്ക്കപ്പെട്ട പതിപ്പുകൾ താളിന്റെ നാൾവഴിയിൽ കാണാവുന്നതായിരിക്കുമെങ്കിലും, അവയുടെ ഉള്ളടക്കത്തിന്റെ ചില ഭാഗങ്ങൾ പൊതുജനങ്ങൾക്ക് ലഭ്യമായിരിക്കണമെന്നില്ല.',
 'logdelete-text' => 'മായ്ക്കപ്പെട്ട പ്രവൃത്തികൾ പ്രവർത്തന രേഖകളിൽ കാണാവുന്നതായിരിക്കുമെങ്കിലും, അവയുടെ ഉള്ളടക്കത്തിന്റെ ചില ഭാഗങ്ങൾ പൊതുജനങ്ങൾക്ക് ലഭ്യമായിരിക്കണമെന്നില്ല.',
@@ -2152,6 +2153,11 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 # List redirects
 'listredirects' => 'തിരിച്ചുവിടൽ താളുകളുടെ പട്ടിക കാണിക്കുക',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'പകർപ്പുകളുള്ള പ്രമാണങ്ങളുടെ പട്ടിക',
+'listduplicatedfiles-summary' => 'ഒരു പ്രമാണത്തിന്റെ ഏറ്റവും പുതിയ പതിപ്പ് മറ്റേതെങ്കിലും പ്രമാണത്തിന്റെ ഏറ്റവും പുതിയ പതിപ്പിന്റെ പകർപ്പ് ആണെങ്കിൽ, ഈ പട്ടികയിൽ കാണാവുന്നതാണ്. പ്രാദേശിക പ്രമാണങ്ങൾ മാത്രമാണ് കണക്കിലെടുത്തിരിക്കുന്നത്.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] എന്ന പ്രമാണത്തിന് [[$3|{{PLURAL:$2|ഒരു പകർപ്പ്|$2 പകർപ്പുകൾ}}]] ഉണ്ട്.',
+
 # Unused templates
 'unusedtemplates' => 'ഉപയോഗിക്കപ്പെടാത്ത ഫലകങ്ങൾ',
 'unusedtemplatestext' => '{{ns:template}} എന്ന നാമമേഖലയിൽ ഉള്ളതും ഒരു താളിലും ചേർത്തിട്ടുമില്ലാത്ത എല്ലാ ഫലകതാളുകളുടേയും പട്ടിക ഈ താളിൽ കാണാം. ഫലകങ്ങൾ മായ്ക്കുന്നതിനു മുൻപ് അതു മറ്റൊരു താളിലും ഉപയോഗിക്കുന്നില്ല എന്നുറപ്പാക്കുക.',
@@ -2601,7 +2607,7 @@ $UNWATCHURL
 '''$1''' എന്ന താളിന്റെ നിലവിലുള്ള ക്രമീകരണം ഇതാണ്‌:",
 'protect-locked-access' => "താളുകളുടെ സംരക്ഷണമാനത്തിൽ വ്യതിയാനം വരുത്തുവാനുള്ള അനുമതി താങ്കളുടെ അംഗത്വത്തിനില്ല.
 '''$1''' എന്ന താളിന്റെ നിലവിലുള്ള ക്രമീകരണങ്ങൾ ഇതാ:",
-'protect-cascadeon' => 'à´\88 à´¤à´¾àµ¾ à´¨à´¿àµ¼à´\9dരിതസà´\82à´°à´\95àµ\8dഷിതമായ (cascading protection) {{PLURAL:$1|à´\92à´°àµ\81 à´¤à´¾à´³à´¿àµ½|പല à´¤à´¾à´³àµ\81à´\95ളിൽ}} à´\89ൾപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതപàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´°à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാൽ à´\87à´¤àµ\8d à´¸à´\82à´°à´\95àµ\8dà´·à´¿à´¤ à´¤à´¾à´³à´¾à´£àµ\8d. à´\8eà´¨àµ\8dനാൽ à´¤à´¾à´\99àµ\8dà´\95ൾà´\95àµ\8dà´\95àµ\8d à´\88 à´¤à´¾à´³à´¿à´¨àµ\8dà´±àµ\86 à´¸à´\82à´°à´\95àµ\8dഷണമാനà´\82 à´®à´¾à´±àµ\8dà´±àµ\81വാൻ à´\95à´´à´¿à´¯àµ\81à´\82, à´\85à´\99àµ\8dà´\99à´¨àµ\86 à´\9aàµ\86à´¯àµ\8dതാൽ à´¨à´¿àµ¼à´\9dരിതസà´\82à´°à´\95àµ\8dഷണതàµ\8dതിനàµ\81 മാറ്റം വരികയില്ല.',
+'protect-cascadeon' => 'à´\88 à´¤à´¾àµ¾ à´¸à´\82à´°à´\95àµ\8dഷണപരമàµ\8dപരയിൽ à´\89ൾപàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9f (cascading protection) {{PLURAL:$1| à´¤à´¾à´³à´¿àµ½| à´¤à´¾à´³àµ\81à´\95ളിൽ}} à´\89ൾപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിനാൽ à´\87à´¤àµ\8d à´¸à´\82à´°à´\95àµ\8dà´·à´¿à´¤ à´¤à´¾à´³à´¾à´£àµ\8d. à´\8eà´¨àµ\8dനാൽ à´¤à´¾à´\99àµ\8dà´\95ൾà´\95àµ\8dà´\95àµ\8d à´\88 à´¤à´¾à´³à´¿à´¨àµ\8dà´±àµ\86 à´¸à´\82à´°à´\95àµ\8dഷണമാനà´\82 à´®à´¾à´±àµ\8dà´±àµ\81വാൻ à´\95à´´à´¿à´¯àµ\81à´\82, à´\85à´\99àµ\8dà´\99à´¨àµ\86 à´\9aàµ\86à´¯àµ\8dതാൽ à´¸à´\82à´°à´\95àµ\8dഷണപരമàµ\8dപരയിൽ മാറ്റം വരികയില്ല.',
 'protect-default' => 'എല്ലാ ഉപയോക്താക്കളെയും അനുവദിക്കുക',
 'protect-fallback' => '"$1" അനുവാദമുള്ള ഉപയോക്താക്കളെ മാത്രം അനുവദിക്കുന്നു',
 'protect-level-autoconfirmed' => 'സ്ഥിരീകരിക്കപ്പെട്ട ഉപയോക്താക്കളെ മാത്രം അനുവദിക്കുന്നു',
index b30f693..755af5e 100644 (file)
@@ -960,8 +960,7 @@ $3-н тодорхойлсон шалтгаан нь ''$2''",
 'revdelete-no-file' => 'Өгөгдсөн файл байхгүй байна.',
 'revdelete-show-file-confirm' => '$2-ий $3 дахь "<nowiki>$1</nowiki>" файлын устгагдсан засварыг үзмээр байгаадаа итгэлтэй байна уу?',
 'revdelete-show-file-submit' => 'Тийм',
-'revdelete-selected' => "'''[[:$1]]-н {{PLURAL:$2|сонгосон засвар|сонгосон засварууд}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Сонгосон логийн үйл явдал|Сонгосон логийн үйл явдлууд}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Сонгосон логийн үйл явдал|Сонгосон логийн үйл явдлууд}}:',
 'revdelete-confirm' => 'Та энэхүү үйлдлийг хийх гэж байгаа, үр дагаварыг ойлгож байгаа, [[{{MediaWiki:Policy-url}}|дүрмийн дагуу]] хийж байгаа гэдгээ батална уу.',
 'revdelete-suppress-text' => "'''Зөвхөн'' дараах тохиолдлуудад л далдалгааг хэрэглэнэ:
 *Гүтгэсэн, матсан байж болох мэдээлэл
index 75d01db..2a4c17d 100644 (file)
@@ -1023,7 +1023,7 @@ $2',
 किंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}} लिहू शकता]</span>.',
 'noarticletext-nopermission' => 'सध्या या लेखात  काहीही मजकूर नाही.
 तुम्ही विकिपीडियावरील इतर लेखांमध्ये [[Special:Search/{{PAGENAME}}| या मथळ्याचा शोध घेऊ शकता]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAME}}}}आपण या लेखाच्या इतर नोंदी शोधा]</span>,परंतु, आपणास हा लेख लिहीण्याची परवानगी देण्यात येउ शकत नाही.',
-'missing-revision' => '"{{PAGENAME}}" या लेखाचे #$1 हे संस्करण अस्तित्वात नाही.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे असे होते.याबाबत विस्तृत माहिती  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी]येथे बघता येईल.',
+'missing-revision' => '"{{FULLPAGENAME}}" या लेखाचे #$1 हे संस्करण अस्तित्वात नाही.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे असे होते.याबाबत विस्तृत माहिती  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी]येथे बघता येईल.',
 'userpage-userdoesnotexist' => '"<nowiki>$1</nowiki>" सदस्य खात्याची नोंद नाही. कृपया हे पान तुम्ही संपादित किंवा नव्याने तयार करू इच्छिता काय याबद्दल विचार करा.',
 'userpage-userdoesnotexist-view' => 'सदस्यखाते "$1"  हे नोंदलेले नाही.',
 'blocked-notice-logextract' => 'हा सदस्य सध्या प्रतिबंधित आहे.
@@ -1237,8 +1237,7 @@ $3ने ''$2'' कारण दिले आहे.",
 'revdelete-no-file' => 'नमूद केलेली संचिका अस्तित्वात नाही.',
 'revdelete-show-file-confirm' => 'तुम्ही "<nowiki>$1</nowiki>" या संचिकेची  $2 ला $3 वेळी  वगळलेली आवृत्ती नक्की पहाणार आहात?',
 'revdelete-show-file-submit' => 'होय',
-'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|ची निवडलेली आवृत्ती|च्या निवडलेल्या आवृत्त्या}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|निवडलेली नोंदीकृत घटना|निवडलेल्या नोंदीकृत घटना}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|निवडलेली नोंदीकृत घटना|निवडलेल्या नोंदीकृत घटना}}:',
 'revdelete-confirm' => "कृपया '''याची खात्री करा''' की तुम्ही जे करीत आहात, त्याचे परिणाम आपण जाणत आहात आणि, ते काम [[{{MediaWiki:Policy-url}}|मीडियाविकीच्या नीती]]नुसार आहे.",
 'revdelete-suppress-text' => "लपवण्याचा वापर '''फक्त''' पुढील बाबतीत होतो:
 * उच्च दर्जाची बदनामीकारक माहिती
index 3588eed..70a98e3 100644 (file)
@@ -899,7 +899,7 @@ Sekiranya anda adalah seorang pengguna tanpa nama dan berasa bahawa komen yang t
 'noarticletext-nopermission' => 'Tiada teks dalam laman ini ketika ini.
 Anda boleh [[Special:Search/{{PAGENAME}}|mencari tajuk laman ini]] dalam laman lain,
 atau <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log yang berkaitan]</span>.',
-'missing-revision' => 'Semakan #$1 pada halaman "{{PAGENAME}}" tidak wujud.
+'missing-revision' => 'Semakan #$1 pada halaman "{{FULLPAGENAME}}" tidak wujud.
 
 Hal ini biasanya disebabkan oleh pautan sejarah yang lapuk ke halaman yang sudah dihapuskan.
 Butirannya boleh didapati di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].',
@@ -1128,8 +1128,7 @@ Anda boleh melihat perbezaan ini; butiran boleh didapati di [{{fullurl:{{#Specia
 'revdelete-no-file' => 'Fail yang dinyatakan tidak wujud.',
 'revdelete-show-file-confirm' => 'Anda pasti anda mahu paparkan semakan yang telah dihapuskan bagi fail "<nowiki>$1</nowiki>" dari $2 pada $3?',
 'revdelete-show-file-submit' => 'Ya',
-'revdelete-selected' => "'''{{PLURAL:$2|Versi|Versi-versi}} '''$1''' yang dipilih:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Peristiwa|Peristiwa-peristiwa}} log yang dipilih:'''",
+'logdelete-selected' => '{{PLURAL:$1|Peristiwa|Peristiwa-peristiwa}} log yang dipilih:',
 'revdelete-confirm' => 'Sila sahkan bahawa anda bertujuan melakukan ini, bahawa anda faham akibatnya, dan anda melakukannya menurut [[{{MediaWiki:Policy-url}}| polisi]].',
 'revdelete-suppress-text' => "Sekatan seharusnya digunakan '''hanya''' untuk kes-kes berikut:
 * maklumat yang mungkin berunsur fitnah
index 98d8d02..a75072f 100644 (file)
@@ -923,7 +923,7 @@ Jekk int utent anonimu u tħoss li qiegħed tirċievi kummenti irrelevanti jew l
 'noarticletext' => "Bħalissa m'hemm l-ebda test f'din il-paġna.
 Inti tista' [[Special:Search/{{PAGENAME}}|tfittex it-titlu ta' din il-paġna]] f'paġni oħra, jew <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tfittex ir-reġistri relatati], jew [{{fullurl:{{FULLPAGENAME}}|action=edit}} timmodifika din il-paġna]</span>.",
 'noarticletext-nopermission' => "Bħalissa m'hemm l-ebda test f'din il-paġna. Inti tista' [[Special:Search/{{PAGENAME}}|tfittex għal dan it-titlu tal-paġna]] f'paġni oħra, jew <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} fittex ir-reġistri relatati]</span>.",
-'missing-revision' => 'Ir-reviżjoni #$1 tal-paġna bl-isem "{{PAGENAME}}" ma teżistix.
+'missing-revision' => 'Ir-reviżjoni #$1 tal-paġna bl-isem "{{FULLPAGENAME}}" ma teżistix.
 
 Dan ħafna drabi jiġri minħabba li tkun segwejt ħolqa lejn paġna mħassra, f\'kronoloġija li mhix aġġornata.
 Id-detallji tista\' ssibhom fir-[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} reġistru tat-tħassir].',
@@ -1132,8 +1132,7 @@ Bħala amministratur inti xorta waħda tista' tarah dan il-konfront; ikkonsulta
 'revdelete-no-file' => 'Il-fajl speċifikat ma jeżistix.',
 'revdelete-show-file-confirm' => 'Tinsab ċert li trid tara reviżjoni mħassra tal-fajl "<nowiki>$1</nowiki>" tal-$2 fil-$3?',
 'revdelete-show-file-submit' => 'Iva',
-'revdelete-selected' => "'''{{PLURAL:$2|Reviżjoni magħżula|Reviżjonijiet magħżula}} ta' [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Avveniment tar-reġistru magħżul|Avvenimenti tar-reġistri magħżula}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Avveniment tar-reġistru magħżul|Avvenimenti tar-reġistri magħżula}}:',
 'revdelete-confirm' => 'Jekk jogħġbok ikkonferma li dan hu dak li tixtieq tagħmel, li tifhem il-konsegwenzi, u li qed tagħmel dan skont il-[[{{MediaWiki:Policy-url}}|politika]].',
 'revdelete-suppress-text' => "It-trażżin għandu jintuża '''biss''' għall-każijiet segwenti:
 * Potenzjal ta' kontenut libelluż
index 7e18058..dfd2703 100644 (file)
@@ -814,7 +814,6 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'revisiondelete' => 'Нардамс/вельмевтемс лиякстомтоматнень',
 'revdelete-show-file-confirm' => 'Алкукс ули мелеть ваномс «<nowiki>$1</nowiki>» керьмазонть нардазь ревизиянзо, конась саезь $2-нть эйстэ ды ашти тесэ $3?',
 'revdelete-show-file-submit' => 'Ули',
-'revdelete-selected' => "'''[[:$1]]-нь {{PLURAL:$2|1=Кочкань лиякстомтомась|Кочкань лиякстомтоматне}}:'''",
 'revdelete-legend' => 'Аравтомс неявомачынь петне',
 'revdelete-hide-text' => 'Кекшемс лиякстомтомань текстэнть',
 'revdelete-hide-image' => 'Кекшемс мезе файлатнесэ',
index 37046bf..203cd79 100644 (file)
@@ -352,7 +352,6 @@ $2، $1',
 'disclaimers' => 'تکذیب‌نومه‌ئون',
 'disclaimerpage' => 'Project:تکذیب‌نومه',
 'edithelp' => 'دچی‌ین رانما',
-'helppage' => 'Help:راهنما',
 'mainpage' => 'گت صفحه',
 'mainpage-description' => 'گت صفحه',
 'policy-url' => 'Project:سیاستون',
@@ -620,8 +619,6 @@ $2، $1',
 
 # Revision deletion
 'rev-delundel' => 'دیار بیّن/فرو بوردن',
-'revdelete-text' => "'''نسخه‌ئون و حذف بئی موارد ره بشنه سیاهه جا و صفحه تاریخچه دله بدین، ولی اتی قسمت از وشونه محتواره بقیه کارورون نتوننه بوینن.'''
-{{SITENAME}} بقیه مدیرون بتوننه اینتا پنهون بئیه محتوا ره هارشن و وشونه حذف بئیون ره احیاء هاکنن، مگر اینکه اتی سری محدودیت ونه رو اعمال بئی باشه.",
 'revdel-restore' => 'دیاری تغییر هدائن',
 
 # History merging
index 4c33947..d515111 100644 (file)
@@ -551,7 +551,6 @@ Hueliz ōmopolo huiqui nozo ōmozacac.
 'rev-delundel' => 'tiquittāz/tictlātīz',
 'revisiondelete' => 'Tiquimpolōz/ahtiquimpolōz tlachiyaliztli',
 'revdelete-show-file-submit' => 'Quēmah',
-'revdelete-selected' => "'''{{PLURAL:$2|Tlachiyaliztli ōmoēlēhui|Tlachiyaliztli ōmoēlēhuih}} [[:$1]] ītechcopa:'''",
 'revdelete-hide-text' => 'In tlahtlachiyaliztli ītlahcuilōl',
 'revdelete-hide-image' => 'Tictlātīz tlahcuilōlli ītlapiyaliz',
 'revdelete-radio-set' => 'Tlaīnāyalli',
index c2d48d3..046d9d3 100644 (file)
@@ -388,7 +388,7 @@ Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-go
 'yourpassword' => 'Lí ê bi̍t-bé:',
 'userlogin-yourpassword' => 'Bi̍t-bé',
 'yourpasswordagain' => 'Têng phah bi̍t-bé:',
-'remembermypassword' => 'Kì tiâu góa ê bi̍t-bé (āu-chhiú teng-ji̍p iōng) (for a maximum of $1 {{PLURAL:$1|day|days}})',
+'remembermypassword' => 'Kì tiâu góa ê bi̍t-bé (āu-chhiú teng-ji̍p iōng) (siōng chē kì $1 {{PLURAL:$1|kang|kang}})',
 'login' => 'Teng-ji̍p',
 'nav-login-createaccount' => 'Teng-ji̍p / khui sin kháu-chō',
 'loginprompt' => 'Thiⁿ ē-kha ê chu-liāu thang khui sin hō·-thâu a̍h-sī teng-ji̍p {{SITENAME}}.',
@@ -397,7 +397,7 @@ Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-go
 'logout' => 'Teng-chhut',
 'userlogout' => 'Teng-chhut',
 'notloggedin' => 'Bô teng-ji̍p',
-'nologin' => "Bô-thang teng-ji̍p? '''$1'''.",
+'nologin' => 'Bô kháu-chō thang teng-ji̍p? $1',
 'nologinlink' => 'Khui 1 ê kháu-chō',
 'createaccount' => 'Khui sin kháu-chō',
 'gotaccount' => "Í-keng ū kháu-chō? '''$1'''.",
@@ -416,7 +416,7 @@ Tùi khoàⁿ-māi,  lí phah--ê.',
 'nouserspecified' => 'Lí ài chí-tēng chi̍t ê iōng-chiá miâ.',
 'wrongpassword' => 'Lí su-ji̍p ê bi̍t-bé ū têng-tâⁿ. Chhiáⁿ têng chhì.',
 'wrongpasswordempty' => 'Bi̍t-bé keh-á khang-khang. Chhiáⁿ têng chhì.',
-'mailmypassword' => 'Kià sin bi̍t-bé hō· góa',
+'mailmypassword' => 'Têng siat bi̍t-bé',
 'passwordremindertitle' => '{{SITENAME}} the-chheN li e bit-be',
 'noemail' => 'Kì-lo̍k bô iōng-chiá "$1" ê e-mail chū-chí.',
 'passwordsent' => 'Ū kià sin bi̍t-bé khì "$1" chù-chheh ê e-mail chū-chí. Siu--tio̍h liáu-āu chhiáⁿ têng teng-ji̍p.',
@@ -524,7 +524,7 @@ Lí ê kái-piàn tī ē-kha ê bûn-jī-keh. Lí su-iàu chiōng lí chò ê k
 'yourdiff' => 'Chha-pia̍t',
 'readonlywarning' => "'''CHÙ-Ì: Chu-liāu-khò· taⁿ só tiâu leh thang pān î-siu khang-khòe, só·-í lí hiān-chú-sî bô thang pó-chûn jīn-hô phian-chi̍p hāng-bo̍k. Lí ē-sái kā siong-koan pō·-hūn tah--ji̍p-khì 1-ê bûn-jī tóng-àn pó-chûn, āu-chhiú chiah koh kè-sio̍k.'''",
 'protectedpagewarning' => "'''KÉNG-KÒ: Pún ia̍h só tiâu leh. Kan-taⁿ ū hêng-chèng te̍k-koân ê iōng-chiá (sysop) ē-sái siu-kái.'''",
-'templatesused' => 'Chit ia̍h iōng chia ê pang-bô·:',
+'templatesused' => 'Chit ia̍h iōng {{PLURAL:$1| ê pang-bô·| ê pang-bô·}} :',
 'templatesusedpreview' => 'Chit ê preview iōng chia ê pang-bô͘:',
 'templatesusedsection' => 'Chit ê section iōng chia ê pang-bô͘:',
 'template-protected' => '(pó-hō͘)',
@@ -724,7 +724,7 @@ Tī pat-lâng liân-lo̍k lí ê sî-chūn bē kā e-mail tsū-tsí siá chhut--
 'filehist-thumb' => '細張圖',
 'filehist-user' => 'Iōng-chiá',
 'imagelinks' => 'tóng-àn sù-iōng ê chōng-hòng',
-'linkstoimage' => 'Í-hā ê ia̍h liân kàu chit ê iáⁿ-siōng:',
+'linkstoimage' => 'ē-kha $1 ê ia̍h ū iōng tio̍h chit ê iáⁿ-siōng:',
 'nolinkstoimage' => 'Bô poàⁿ ia̍h liân kàu chit tiuⁿ iáⁿ-siōng.',
 
 # MIME search
@@ -763,7 +763,7 @@ Tī pat-lâng liân-lo̍k lí ê sî-chūn bē kā e-mail tsū-tsí siá chhut--
 'nbytes' => '$1 {{PLURAL:$1|jī-goân|jī-goân}}',
 'ncategories' => '$1 {{PLURAL:$1|ê lūi-pia̍t |ê lūi-pia̍t}}',
 'nlinks' => '$1 ê liân-kiat',
-'nmembers' => '$1 ê sêng-oân',
+'nmembers' => '$1{{PLURAL:$1|ê sêng-oân|ê sêng-oân}}',
 'nrevisions' => '$1 ê siu-tēng-pún',
 'lonelypages' => 'Ko·-ia̍h',
 'uncategorizedpages' => 'Bô lūi-pia̍t ê ia̍h',
@@ -845,7 +845,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'emailsenttext' => 'Lí ê e-mail í-keng sàng chhut-khì ah.',
 
 # Watchlist
-'watchlist' => 'Kàm-sī-toaⁿ',
+'watchlist' => 'Góa ê kàm-sī-toaⁿ',
 'mywatchlist' => 'Góa ê kàm-sī-toaⁿ',
 'watchlistfor2' => '予$1 $2',
 'nowatchlist' => 'Lí ê kàm-sī-toaⁿ bô pòaⁿ hāng.',
@@ -911,7 +911,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'blanknamespace' => '(Thâu-ia̍h)',
 
 # Contributions
-'contributions' => 'Iōng-chiá ê kòng-hiàn',
+'contributions' => '{{GENDER:$1|Iōng-chiá}} ê kòng-hiàn',
 'mycontris' => 'Góa ê kòng-hiàn',
 'nocontribs' => 'Chhōe bô tiâu-kiāⁿ ū-tùi ê hāng-bo̍k.',
 'uctop' => '(siōng téng ê)',
index d580427..886aefe 100644 (file)
@@ -252,7 +252,6 @@ $messages = array(
 'disclaimers' => 'Avvertimiènte',
 'disclaimerpage' => 'Project:Avvertimiènte generale',
 'edithelp' => 'Guida',
-'helppage' => 'Help:Ajùto',
 'mainpage' => 'Paggena prencepale',
 'mainpage-description' => 'Paggena prencepale',
 'policy-url' => 'Project:Policy',
index f322a26..d466415 100644 (file)
@@ -34,6 +34,7 @@
  * @author Nghtwlkr
  * @author Njardarlogar
  * @author Nsaa
+ * @author Pcoombe
  * @author Pladask
  * @author Purodha
  * @author Qaqqalik
@@ -852,6 +853,8 @@ Vent $1 før du prøver på nytt.',
 'suspicious-userlogout' => 'Din forespørsel om å logge ut ble nektet fordi den så ut til å ha bli sendt av en ødelagt nettleser eller en mellomtjener.',
 'createacct-another-realname-tip' => 'Det er frivillig å oppgi ditt egentlige navn.
 Hvis du velger å oppgi det, vil det blir anvendt for å gi deg som bruker anerkjennelse',
+'pt-login' => 'Logg inn',
+'pt-createaccount' => 'Opprett konto',
 
 # Email sending
 'php-mail-error-unknown' => 'Ukjent feil i PHPs mail()-funksjon',
@@ -1043,7 +1046,7 @@ Du kan [[Special:Search/{{PAGENAME}}|søke etter denne sidetittelen]] på andre
 eller [{{fullurl:{{FULLPAGENAME}}|action=edit}} opprette siden]</span>.',
 'noarticletext-nopermission' => 'Det er for tiden ingen tekst på denne siden.
 Du kan [[Special:Search/{{PAGENAME}}|søke etter sidens tittel]] blant andre sider, eller <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søke i relevante logger]</span>.',
-'missing-revision' => 'Revisjonen #$1 av siden med navnet "{{PAGENAME}}" eksisterer ikke.
+'missing-revision' => 'Revisjonen #$1 av siden med navnet "{{FULLPAGENAME}}" eksisterer ikke.
 
 Dette skyldes som regel at en gammel historikklenke er fulgt til en side som er slettet.
 Detaljer kan finnes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].',
@@ -1272,8 +1275,7 @@ Du kan se denne diffen; det kan finnes detaljer i [{{fullurl:{{#Special:Log}}/su
 'revdelete-no-file' => 'Den spesifiserte filen finnes ikke.',
 'revdelete-show-file-confirm' => 'Er du sikker på at du ønsker å vise en slettet versjon av filen «<nowiki>$1</nowiki>» fra $2 kl. $3?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Valgt revisjon|Valgte revisjoner}} av [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Valgt loggoppføring|Valgte loggoppføringer}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Valgt loggoppføring|Valgte loggoppføringer}}:',
 'revdelete-confirm' => 'Bekreft at du ønsker å gjøre dette, at du forstår konsekvensene, og at du gjør det i samsvar med [[{{MediaWiki:Policy-url}}|retningslinjene]].',
 'revdelete-suppress-text' => "Skjuling bør '''kun''' brukes i følgende tilfeller:
 * Mulig injurierende utsagn
index 361a5e1..a86718a 100644 (file)
@@ -958,8 +958,7 @@ As Administrater kannst du [$1 mit dissen Lenk] den Ünnerscheed ankieken.',
 'revdelete-no-file' => 'De angeven Datei gifft dat nich.',
 'revdelete-show-file-confirm' => 'Wullt du worraftig en wegsmeten Version vun de Datei „<nowiki>$1</nowiki>“ vun $2, $3 ankieken?',
 'revdelete-show-file-submit' => 'Jo',
-'revdelete-selected' => "'''{{PLURAL:$2|Wählte Version|Wählte Versionen}} vun [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Wählt Logbook-Indrag|Wählte Logbook-Indrääg}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Wählt Logbook-Indrag|Wählte Logbook-Indrääg}}:',
 'revdelete-suppress-text' => "Ünnerdrücken schull '''blot''' bi disse Fäll bruukt warrn:
 * Nich passliche persönliche Information
 *: ''Adressen, Telefonnummern, Sozialversekerungsnummern etc.''",
index 818e46c..52e659f 100644 (file)
@@ -15,6 +15,7 @@
  * @author Kaganer
  * @author Purodha
  * @author Servien
+ * @author Sjoerddebruin
  * @author Slomox
  * @author Urhixidur
  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
@@ -1031,7 +1032,7 @@ of [{{fullurl:{{FULLPAGENAME}}|action=edit}} disse zied bewarken]</span>.',
 'noarticletext-nopermission' => 'Op disse zied steet gien tekste.
 Je kunnen [[Special:Search/{{PAGENAME}}|zeuken naor disse term]] in aandere ziejen of
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken deurzeuken]</span>, mer je hebben gien rechten um disse zied an te maken.',
-'missing-revision' => 'De versie #$1 van de zied "{{PAGENAME}} besteet niet.
+'missing-revision' => 'De versie #$1 van de zied "{{FULLPAGENAME}} besteet niet.
 
 Dit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.
 Waorschienlik ku\'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].',
@@ -1250,8 +1251,7 @@ Je kunnen disse verschillen bekieken. Misschien steet der over in t [{{fullurl:{
 'revdelete-no-file' => 't Op-egeven bestaand besteet niet.',
 'revdelete-show-file-confirm' => 'Bi\'j der wisse van da\'j de vortedaone versie van t bestaand "<nowiki>$1</nowiki>" van $2 um $3 bekieken willen?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Ekeuzen bewarking|Ekeuzen bewarkingen}} van '''[[:$1]]''':'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Ekeuzen logboekboekaksie|Ekeuzen logboekaksies}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Ekeuzen logboekboekaksie|Ekeuzen logboekaksies}}:',
 'revdelete-confirm' => "Bevestig da'j dit doon wollen, da'j de gevolgen dervan begriepen en da'j t doon in overeenstemming mit t geldende [[{{MediaWiki:Policy-url}}|beleid]].",
 'revdelete-suppress-text' => "Onderdrokken ma'j '''allinnig''' gebruken in de volgende gevallen:
 * Ongepassen persoonlike informasie
index 70fa19d..99e017e 100644 (file)
@@ -956,8 +956,7 @@ $2
 'revdelete-no-file' => 'खुलाइएको पृष्ठ अस्तित्वमा छैन',
 'revdelete-show-file-confirm' => 'तपाईँ $2 बाट $3 मा मेटिएको फाइल "<nowiki>$1</nowiki>" को पुनरावलोकन हेर्न चाहनुहुन्छ भन्ने कुरामा निश्चित हुनुहुन्छ ?',
 'revdelete-show-file-submit' => 'हो',
-'revdelete-selected' => "'''[[:$1]]को {{PLURAL:$2|छानिएको संस्करण|छानिएका संस्करणहरु}}  :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|छानिएको लग घटना|छानिएका लग घटनाहरु}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|छानिएको लग घटना|छानिएका लग घटनाहरु}}:',
 'revdelete-legend' => 'दृष्टि बन्देज मिलाउने',
 'revdelete-hide-text' => 'पुनरावलोकन पाठ',
 'revdelete-hide-image' => 'फाइल कमेन्ट लुकाउने',
@@ -1074,7 +1073,7 @@ $1",
 'search-section' => '(खण्ड $1)',
 'search-suggest' => 'के तपाईको खोजाई : $1 हो?',
 'search-interwiki-caption' => 'भगिनी आयोजना',
-'search-interwiki-default' => '$1 नतिजाहरू:',
+'search-interwiki-default' => '$1देखिका नतिजाहरू:',
 'search-interwiki-more' => '(अझै)',
 'search-relatedarticle' => 'सम्बन्धित',
 'searcheverything-enable' => 'सबै नेमस्पेसेजहरुमा खोज्नुहोस्',
index 52eb21e..df5c3d0 100644 (file)
@@ -1127,7 +1127,7 @@ U kunt [[Special:Search/{{PAGENAME}}|naar deze term zoeken]] in andere pagina\'s
 'noarticletext-nopermission' => 'Deze pagina bevat geen tekst.
 U kunt [[Special:Search/{{PAGENAME}}|naar deze term zoeken]] in andere pagina\'s of
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken doorzoeken]</span>, maar u mag de pagina niet aanmaken.',
-'missing-revision' => 'De versie #$1 van de pagina "{{PAGENAME}} bestaat niet.
+'missing-revision' => 'De versie #$1 van de pagina "{{FULLPAGENAME}} bestaat niet.
 
 Dit wordt meestal veroorzaakt door het volgen van een verouderde koppeling naar een pagina die is verwijderd.
 Meer gegevens zijn mogelijk te vinden in het [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} verwijderingslogboek].',
@@ -1367,8 +1367,9 @@ U kunt deze verschillen bekijken. Er kunnen details te vinden zijn in het [{{ful
 'revdelete-no-file' => 'Het opgegeven bestand bestaat niet.',
 'revdelete-show-file-confirm' => 'Weet u zeker dat u de verwijderde versie van het bestand "<nowiki>$1</nowiki>" van $2 om $3 wilt bekijken?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''Geselecteerde {{PLURAL:$2|bewerking|bewerkingen}} van [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Geselecteerde logboekhandeling|Geselecteerde logboekhandelingen}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Geselecteerde versie|Geselecteerde versies}} van [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Geselecteerde bestandsversie|Geselecteerde bestandsversies}} van [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Geselecteerde logboekregel|Geselecteerde logboekregels}}:',
 'revdelete-text-text' => 'Verwijderde versies zijn nog zichtbaar in de geschiedenis, maar delen van de inhoud zijn niet openbaar.',
 'revdelete-text-file' => 'Verwijderde versies zijn nog zichtbaar in de bestandsgeschiedenis, maar delen van de inhoud zijn niet openbaar.',
 'logdelete-text' => 'Verwijderde logboekregels zijn nog zichtbaar in de logboeken, maar delen van de inhoud zijn niet openbaar.',
index 9506360..9ecc40a 100644 (file)
@@ -28,6 +28,7 @@
  * @author Nghtwlkr
  * @author Njardarlogar
  * @author Olve Utne
+ * @author Pcoombe
  * @author Ranveig
  * @author Shauni
  * @author Urhixidur
@@ -833,6 +834,8 @@ Du kan sjå bort frå denne meldinga dersom kontoen vart oppretta med eit uhell.
 'login-abort-generic' => 'Innlogginga er avbroten.',
 'loginlanguagelabel' => 'Språk: $1',
 'suspicious-userlogout' => 'Førespurnaden din om å logge ut vart nekta fordi han såg ut til å vere sendt av ein øydelagt nettlesar eller mellomtenar.',
+'pt-login' => 'Logg inn',
+'pt-createaccount' => 'Opprett konto',
 
 # Email sending
 'php-mail-error-unknown' => 'Ukjend feil i PHPs mail()-funksjon',
@@ -988,7 +991,7 @@ eller [{{fullurl:{{FULLPAGENAME}}|action=edit}} endra denne sida]</span>.',
 'noarticletext-nopermission' => 'Der er nett no ikkje noko tekst på denne sida.
 Du kan [[Special:Search/{{PAGENAME}}|søkja etter sidetittelen]] i andre sider
 eller <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søkja i dei relaterte loggane]</span>, men du har ikkje løyve til å oppretta denne sida.',
-'missing-revision' => 'Versjonen #$1 av sida med namnet «{{PAGENAME}}» finst ikkje.
+'missing-revision' => 'Versjonen #$1 av sida med namnet «{{FULLPAGENAME}}» finst ikkje.
 
 Dette skriv seg som oftast frå at ei forelda historikklenkje vart fylgd til ei side som er sletta.
 Detaljar kan ein finna i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].',
@@ -1203,8 +1206,7 @@ Du kan sjå skilnaden; detaljar finst i [{{fullurl:{{#Special:Log}}/suppcess|pag
 'revdelete-no-file' => 'Fila som vart synt til finst ikkje.',
 'revdelete-show-file-confirm' => 'Er du viss på at du ynskjer å sjå ein sletta versjon av fila "<nowiki>$1</nowiki>" frå $2 ved $3?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Vald versjon|Valde versjonar}} av [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Vald loggoppføring|Valde loggoppføringar}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Vald loggoppføring|Valde loggoppføringar}}:',
 'revdelete-confirm' => 'Stadfest at du ynskjer å gjera dette, at du skjønar konsekvensane, og at du gjer det i samsvar med [[{{MediaWiki:Policy-url}}|retningslinene]].',
 'revdelete-suppress-text' => "Løyning av sideversjonar bør '''berre''' nyttast i desse tilfella:
 * Mogeleg ærekrenkjande informasjon
@@ -1645,7 +1647,7 @@ Denne informasjonen vil vera offentleg.',
 'recentchanges-label-plusminus' => 'Storleiken til sida vart endra med så mange byte',
 'recentchanges-legend-heading' => "'''Tyding:'''",
 'recentchanges-legend-newpage' => '(sjå dessutan [[Special:NewPages|lista over nye sider]])',
-'rcnotefrom' => "Nedanfor vert opp til '''$1''' endringar sidan  ''' $2''' viste.",
+'rcnotefrom' => 'Nedanfor er endringane gjorde sidan <strong>$2</strong> viste (opp til <strong>$1</strong> stykke)',
 'rclistfrom' => 'Vis nye endringar sidan $1',
 'rcshowhideminor' => '$1 småplukk',
 'rcshowhidebots' => '$1 robotar',
index 32bfbc2..fae7c1d 100644 (file)
@@ -1004,7 +1004,7 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear aquesta pagina]</span>.',
 'noarticletext-nopermission' => 'Actualament i a pas cap de tèxte dins aquesta pagina.
 Podètz [[Special:Search/{{PAGENAME}}|far una recèrca sul títol de la pagina]] dins las autras paginas,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} recercar dins los jornals associats]</span>.',
-'missing-revision' => "La revision n° $1 de la pagina intitulada « {{PAGENAME}} » existís pas.
+'missing-revision' => "La revision n° $1 de la pagina intitulada « {{FULLPAGENAME}} » existís pas.
 
 Aquò se produsís en general en seguent un ligam istoric obsolet cap a una pagina qu'es estada suprimida.
 Podètz trobar mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
@@ -1224,8 +1224,7 @@ Podètz veire aquesta diff ; i pòt aver mai de detalhs dins lo [{{fullurl:{{#Sp
 'revdelete-no-file' => 'Lo fichièr especificat existís pas.',
 'revdelete-show-file-confirm' => 'Sètz segur(a) que volètz veire la revision suprimida del fichièr « <nowiki>$1</nowiki> » datant del $2 a $3?',
 'revdelete-show-file-submit' => 'Òc',
-'revdelete-selected' => "'''{{PLURAL:$2|Version seleccionada|Versions seleccionadas}} de [[:$1]] :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Eveniment d'istoric seleccionat|Eveniments d'istoric seleccionats}} :'''",
+'logdelete-selected' => "{{PLURAL:$1|Eveniment d'istoric seleccionat|Eveniments d'istoric seleccionats}} :",
 'revdelete-confirm' => "Confirmatz que volètz efectuar aquesta accion, que ne comprenètz las consequéncias, e qu'o fasètz en acòrd amb [[{{MediaWiki:Policy-url}}|las règlas]].",
 'revdelete-suppress-text' => "La supression deu èsser utilizada '''sonque''' dins los cases seguents :
 * Informacions potencialament difamatòrias
index f573e21..363029f 100644 (file)
@@ -955,7 +955,7 @@ $1 ଦ୍ଵାରା ପ୍ରତିରୋଧ କରାଯାଇଛି
 ଆପଣ [[Special:Search/{{PAGENAME}}|ଏହି ଲେଖାଟିର ନାଆଁ]] ବାକି ପୃଷ୍ଠାମାନଙ୍କରେ ଖୋଜି ପାରନ୍ତି, କିମ୍ବା
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}ରେ ଯୋଡ଼ାଯାଇଥିବା ବାକି ପୃଷ୍ଠାସବୁକୁ ଖୋଜି ପାରନ୍ତି]
 </span>, କିନ୍ତୁ ଏହି ପୃଷ୍ଠାଟିକୁ ଆପଣ ତିଆରି କରିପାରିବେ ନାହିଁ ।',
-'missing-revision' => '"{{PAGENAME}}" ନାମରେ ଥିବା ପୃଷ୍ଠାଟିର #$1 ପୁନରାବୃତ୍ତି ନାହିଁ ।
+'missing-revision' => '"{{FULLPAGENAME}}" ନାମରେ ଥିବା ପୃଷ୍ଠାଟିର #$1 ପୁନରାବୃତ୍ତି ନାହିଁ ।
 
 ପୁରୁଣା ହୋଇଯାଇଥିବା ଇତିହାସ ଲିଙ୍କ ଯାହା ଏକ ଲିଭାଯାଇଥିବା ପୃଷ୍ଠାକୁ ଦିଆଯାଇଥିବାରୁ ଏହା ସାଧାରଣତଃ ହୋଇଥାଏ ।
 ଅଧିକ ବିବରଣୀ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]ରେ ମିଳିପାରିବ ।',
@@ -1186,8 +1186,7 @@ $3ଙ୍କ ଦେଇ ଦିଆଯାଇଥିବା କାରଣ ହେଲା '
 'revdelete-no-file' => 'ଆପଣ ସୂଚିତ କରିଥିବା ଫାଇଲଟି ନାହିଁ ।',
 'revdelete-show-file-confirm' => '$2 ତାରିଖ $3 ବେଳେ "<nowiki>$1</nowiki>" ଫାଇଲର ଏକ ଲିଭାଯାଇଥିବା ସଙ୍କଳନକୁ ଦେଖିବାକୁ ଚାହାନ୍ତି ବୋଲି ଆପଣ ନିଶ୍ଚିତ କି ?',
 'revdelete-show-file-submit' => 'ହଁ',
-'revdelete-selected' => "'''[[:$1]]ର {{PLURAL:$2|ବଛା ସଙ୍କଳନ|ବଛା ସଙ୍କଳନ}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|ବଛା ଲଗ ଘଟଣା|ବଛା ଲଗ ଘଟଣାବଳୀ}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|ବଛା ଲଗ ଘଟଣା|ବଛା ଲଗ ଘଟଣାବଳୀ}}:',
 'revdelete-confirm' => 'ଦୟାକରି ଥୟ କରନ୍ତୁ ଯେ ଆପଣ ଏହା କରିବାକୁ ଚାହୁଁଛନ୍ତି, ଆପଣ ଏହାର ପରିଣାମ ଜାଣନ୍ତି ଓ ଆପଣ [[{{MediaWiki:Policy-url}}|ନୀତି]] ଅନୁସାରେ ଏହା କରୁଛନ୍ତି ।',
 'revdelete-suppress-text' => "ଦବାଇ ରଖିବା '''କେବଳ''' ଏହି ତଳଲିଖିତ କ୍ଷେତ୍ରରେ ବ୍ୟବହାର କରାଯିବ:
 * ସମ୍ଭାବିତ ଅପମାନଜଣକ ତଥ୍ୟ
index 5d2bb7c..6442077 100644 (file)
@@ -857,7 +857,7 @@ $2
 кæнæ [{{fullurl:{{FULLPAGENAME}}|action=edit}} скæнын ацы фарс]</span>.',
 'noarticletext-nopermission' => 'Ацы фарсы нырмæ текст нæй.
 Дæ бон у [[Special:Search/{{PAGENAME}}|бацагурын ацы фарсы ном]] æндæр фæрсты, кæнæ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} агурын йæ кой логты]</span>, фæлæ дын йæ саразыны бар нæй.',
-'missing-revision' => '"{{grammar:genitive|{{PAGENAME}}}}" фарсæн $1-æм фæлтæр нæй.
+'missing-revision' => '"{{grammar:genitive|{{FULLPAGENAME}}}}" фарсæн $1-æм фæлтæр нæй.
 
 Ай арæх æрцæуы, исчи хафт фарсы зæронд историйы æрвитæны фæдыл куы ацæуы.
 Фылдæр гæнæн ис базонын [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} хафыны логы].',
index 6ba7ec0..cb90d3b 100644 (file)
@@ -1019,7 +1019,6 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'revdelete-no-file' => 'ਦਿੱਤੀ ਗਈ ਫਾਇਲ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।',
 'revdelete-show-file-confirm' => 'ਤੁਹਾਨੂੰ ਯਕੀਨ ਹੈ ਤੁਸੀਂ $2 ਨੂੰ $3 ਦੀ ਫ਼ਾਈਲ "<nowiki>$1</nowiki>" ਦੀ ਮਿਟਾਈ ਗਈ ਰੀਵਿਜ਼ਨ ਵੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?',
 'revdelete-show-file-submit' => 'ਹਾਂ',
-'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|ਦੀ ਚੁਣੀ ਹੋਈ ਰੀਵਿਜ਼ਨ|ਦੀਆਂ ਚੁਣੀਆਂ ਹੋਈਆਂ ਰੀਵਿਜ਼ਨਾਂ}}:'''",
 'revdelete-legend' => 'ਵੇਖਣ ਪਾਬੰਦੀਆਂ ਸੈੱਟ ਕਰੋ:',
 'revdelete-hide-text' => 'ਦੁਹਰਾਈ ਲਿਖਤ',
 'revdelete-hide-image' => 'ਫ਼ਾਈਲ ਸਮੱਗਰੀ ਓਹਲੇ',
index a66d15b..0ab6763 100644 (file)
@@ -651,8 +651,7 @@ mapaliaring maki detalle king [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPA
 'revisiondelete' => 'Ilako/e-ilako ing pamanalili',
 'revdelete-nooldid-title' => 'E ustung pamanaliling target',
 'revdelete-nooldid-text' => 'Mapaliaring ala kang binieng balak a pamanalili (target revision) ba meng daptan ing gamit (function) a iti, ala yu ing mebanggit a pamanaliling iti, o magtangka kang isalikut ya ing kasalungsungan a pamanalili.',
-'revdelete-selected' => "'''{{PLURAL:$2|Mepiling bersion|Mepiling bersion}} ning [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Mepiling miliari king tala/listaan|Mepiling miliari king tala/listaan}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Mepiling miliari king tala/listaan|Mepiling miliari king tala/listaan}}:',
 'revdelete-legend' => 'Mitakdang angganan/limitasiun kareng maliaring akit',
 'revdelete-hide-text' => 'Isalikut ya ing meyaliling kulitan',
 'revdelete-hide-image' => 'Isalikut ya ing laman ning simpan',
index 60f249d..f4c0dd0 100644 (file)
@@ -1056,7 +1056,7 @@ Możesz [[Special:Search/{{PAGENAME}}|poszukać „{{PAGENAME}}” na innych str
 'noarticletext-nopermission' => 'Ta strona nie posiada jeszcze zawartości.
 Możesz [[Special:Search/{{PAGENAME}}|wyszukać ten tytuł]] w treści innych stron
 lub <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} przeszukać powiązane rejestry]</span>, ale nie masz uprawnień do utworzenia tej strony',
-'missing-revision' => 'Wersja #$1 strony "{{PAGENAME}}" nie istnieje.
+'missing-revision' => 'Wersja #$1 strony "{{FULLPAGENAME}}" nie istnieje.
 
 Zazwyczaj jest to spowodowane przestarzałym linkiem do usuniętej strony. Powód usunięcia znajduje się w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rejestrze].',
 'userpage-userdoesnotexist' => 'Użytkownik „<nowiki>$1</nowiki>” nie jest zarejestrowany.
@@ -1290,8 +1290,9 @@ wybrana wersja nie istnieje lub próbowano ukryć wersję bieżącą.',
 'revdelete-no-file' => 'Wybrany plik nie istnieje.',
 'revdelete-show-file-confirm' => 'Czy jesteś pewien, że chcesz zobaczyć usuniętą wersję pliku „<nowiki>$1</nowiki>” z $2 o $3?',
 'revdelete-show-file-submit' => 'Tak',
-'revdelete-selected' => "'''{{PLURAL:$2|Zaznaczona wersja|Zaznaczone wersje}} strony [[:$1]]:'''",
-'logdelete-selected' => "'''Zaznaczone {{PLURAL:$1|zdarzenie|zdarzenia}} z rejestru:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Wybrana wersja|Wybrane wersje}} [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Wybrana wersja pliku|Wybrane wersje pliku}} [[:$2]]:',
+'logdelete-selected' => 'Zaznaczone {{PLURAL:$1|zdarzenie|zdarzenia}} z rejestru:',
 'revdelete-text-text' => 'Usunięte wersje będą nadal widoczne w historii strony, ale niektóre fragmenty ich treści nie będą dostępne dla wszystkich.',
 'revdelete-text-file' => 'Usunięte wersje pliku będą nadal widoczne w historii pliku, ale niektóre fragmenty ich treści nie będą dostępne dla wszystkich.',
 'revdelete-confirm' => 'Potwierdź, że chcesz to zrobić zgodnie z [[{{MediaWiki:Policy-url}}|zasadami]] i że rozumiesz konsekwencje.',
@@ -2160,6 +2161,10 @@ Użycie: typ_treści/podtyp, np. <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Lista przekierowań',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lista plików mających duplikaty',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] ma [[$3|{{PLURAL:$2|jeden duplikat|$2 duplikaty|$2 duplikatów}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Nieużywane szablony',
 'unusedtemplatestext' => 'Poniżej znajduje się lista wszystkich stron znajdujących się w przestrzeni nazw {{ns:template}}, które nie są używane przez inne strony.
index 1e1971e..48076ea 100644 (file)
@@ -764,7 +764,7 @@ o purament [{{fullurl:{{FULLPAGENAME}}|action=edit}} modìfiché sta pàgina]</s
 'noarticletext-nopermission' => "Al moment a-i é gnun test ansima a costa pàgina.
 A peul [[Special:Search/{{PAGENAME}}|sërché ës tìtol ëd pàgina]] an d'àutre pàgine,
 o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sërché ant j'argistr colegà]</span>, ma a l'ha pa ël përmess ëd creé costa pàgina.",
-'missing-revision' => "La revision nùmer $1 dla pàgina antitolà «{{PAGENAME}}» a esist pa.
+'missing-revision' => "La revision nùmer $1 dla pàgina antitolà «{{FULLPAGENAME}}» a esist pa.
 
 Sòn a l'é normalment causà da l'andèje dapress a na vej liura stòrica a na pàgina ch'a l'é stàita scancelà. Ij detaj a peulo esse trovà ant ël [registr ëd jë scancelament ëd {{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}].",
 'userpage-userdoesnotexist' => "Lë stranòm «<nowiki>$1</nowiki>» a l'é pa registrà. Për piasì ch'a varda se da bon a veul creé o modifiché costa pàgina.",
@@ -994,8 +994,7 @@ Chiel a peul ancora s-ciairé costa diferensa; a peulo essje pì 'd detaj ant ë
 'revdelete-no-file' => "L'archivi sërcà a-i é pa.",
 'revdelete-show-file-confirm' => 'É-lo sigur ëd vorèj vëdde na vërsion scancelà dl\'archivi "<nowiki>$1</nowiki>" da $2 a $3?',
 'revdelete-show-file-submit' => 'Bò!',
-'revdelete-selected' => "'''{{PLURAL:$2|Revision|Revision}} selessionà për [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Event|Event}} dël registr selessionà:'''",
+'logdelete-selected' => '{{PLURAL:$1|Event|Event}} dël registr selessionà:',
 'revdelete-confirm' => "Për piasì, ch'a confema ch'a veul fé sòn, ch'as rend cont dle conseguense, e ch'a lo fa an acòrd con [[{{MediaWiki:Policy-url}}|le régole]].",
 'revdelete-suppress-text' => "La scancelassion a dovrìa '''mach''' esse dovrà an costi cas:
 * Anformassion ch'a podrìo esse difamatòrie
index 15a5ffc..78bd3e1 100644 (file)
@@ -825,8 +825,7 @@ $3 نے ''$2'' وجہ دسی اے۔",
 'revdelete-no-file' => 'فائل جیہڑی کئی گئی اے ہے ای نئیں۔',
 'revdelete-show-file-confirm' => 'تساں نوں کیا پک اے جے تسیں فائل "<nowiki>$1</nowiki>" دی مٹائی ریوین  $2 توں $3 تک؟',
 'revdelete-show-file-submit' => 'ہاں',
-'revdelete-selected' => "'''{{PLURAL:$2|چنی ریوین|چنیاں ریویناں}} دی [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|چنیا لاگ واقعہ|چنے لاگ واقعے}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|چنیا لاگ واقعہ|چنے لاگ واقعے}}:',
 'revdelete-confirm' => 'اے پکا کرلو جے تسیں ایہ کرنا چاندے او، تے توانوں ایدے نتیجے دا پتہ اے، تے تسیں [[{{MediaWiki:Policy-url}}|پالیسی]] تے چل کے ک رۓ او۔',
 'revdelete-suppress-text' => "دبانا اودوں ای ٹھیک اے جدوں اے تھلے دتے کۓ مسلیاں لئی ہووے۔
 * غلط جانکاری
index b03fc4a..887a99c 100644 (file)
@@ -678,8 +678,7 @@ Bandais [[Special:Search|laukītun]] sirzdau nāunans pāusans en wiki',
 'revdelete-nooldid-text' => 'Ni etrīnkā di wersiōnins, na kawīdans šis dīlasenis turīlai būtwei izpilnintan, etrīnkta wersiōni ni ekzistijja, anga bandāi di kliptintun bigāntin wersiōnin.',
 'revdelete-no-file' => 'Etrīnkts zūrbrukis ni ekzistijja.',
 'revdelete-show-file-submit' => 'Jā',
-'revdelete-selected' => "{{PLURAL:$2|Pazentlitā pāusas [[:$1]] wersiōni|Pazentlitas pāusas [[:$1]] wersiōnis}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Pazentlits registeres audāsenis|Pazentlitai redigisenes audāsenei}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Pazentlits registeres audāsenis|Pazentlitai redigisenes audāsenei}}:',
 'revdelete-suppress-text' => 'Klipsnan prawerru tērpautun tēr prei:
 * Persōniskas dātas etkesnā
 *: "buttiska adressi, telapōnas nummeri, sociāla nummeri be t.t."',
index 39fd18b..26062c1 100644 (file)
@@ -929,7 +929,6 @@ $1',
 'revisiondelete' => 'د ړنگولو/ناړنگولو مخکتنې',
 'revdelete-no-file' => 'ځانگړې شوې دوتنه نشته.',
 'revdelete-show-file-submit' => 'هو',
-'revdelete-selected' => "'''د [[:$1]] {{PLURAL:$2|ټاکلې بڼه|ټاکلې بڼې}}:'''",
 'revdelete-legend' => 'د ښکارېدنې محدوديتونه ټاکل',
 'revdelete-hide-text' => 'د مخکتنې متن',
 'revdelete-hide-image' => 'د دوتنې مېنځپانگه پټول',
index 262b1ec..dc00b35 100644 (file)
@@ -1057,7 +1057,7 @@ Pode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras p
 ou [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar esta página]</span>.',
 'noarticletext-nopermission' => 'Ainda não existe texto nesta página.
 Pode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras páginas, ou <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} procurar nos registos relacionados]</span>, mas não tem permissão para criar esta página.',
-'missing-revision' => 'A revisão #$1 da página denominada "{{PAGENAME}}" não existe.
+'missing-revision' => 'A revisão #$1 da página denominada "{{FULLPAGENAME}}" não existe.
 
 Isto é geralmente causado por seguir um link de histórico desatualizado para uma página que foi eliminada.
 Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminação].',
@@ -1298,8 +1298,7 @@ Pode ver a diferença entre revisões; encontrará detalhes no [{{fullurl:{{#Spe
 'revdelete-no-file' => 'O ficheiro especificado não existe.',
 'revdelete-show-file-confirm' => 'Tem a certeza de que quer ver uma revisão eliminada do ficheiro "<nowiki>$1</nowiki>" de $2 às $3?',
 'revdelete-show-file-submit' => 'Sim',
-'revdelete-selected' => "'''{{PLURAL:$2|Edição selecionada|Edições selecionadas}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Evento do registo selecionado|Eventos do registo selecionados}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Evento do registo selecionado|Eventos do registo selecionados}}:',
 'revdelete-text-text' => 'Revisões eliminadas ainda aparecerão no histórico da página, mas parte do seu conteúdo estará inacessível para o público.',
 'revdelete-text-file' => 'Versões eliminadas do ficheiro ainda aparecerão no histórico da página, mas parte do seu conteúdo estará inacessível para o público.',
 'logdelete-text' => 'Os eventos eliminados ainda aparecerão no histórico da página, mas pare de seu conteúdo será inacessível ao público.',
index f31d608..efd123f 100644 (file)
@@ -858,7 +858,7 @@ Não lhe será enviado nenhum e-mail sobre nenhuma das seguintes funcionalidades
 'cannotchangeemail' => 'A conta de e-mail não pode ser alterada neste wiki.',
 'emaildisabled' => 'Este site não tem como enviar e-mails.',
 'accountcreated' => 'Conta criada',
-'accountcreatedtext' => 'A conta d eusuários para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) foi criada.',
+'accountcreatedtext' => 'A conta de usuário para [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) foi criada.',
 'createaccount-title' => 'Criação de conta em {{SITENAME}}',
 'createaccount-text' => 'Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha "$3".
 Você deve se autenticar e alterar sua senha.
@@ -1062,7 +1062,7 @@ ou [{{fullurl:{{FULLPAGENAME}}|action=edit}} criar esta página]</span>.',
 'noarticletext-nopermission' => 'No momento, não há conteúdo nesta página
 Você pode [[Special:Search/{{PAGENAME}}|pesquisar pelo título desta página]] em outras páginas,
 ou <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar por registros relacionados] </span>. Note que, no entanto, você não tem permissão para criar esta página.',
-'missing-revision' => 'A revisão #$1 da página denominada "{{PAGENAME}}" não existe.
+'missing-revision' => 'A revisão #$1 da página denominada "{{FULLPAGENAME}}" não existe.
 
 Isto é geralmente causado por seguir um link de histórico desatualizado para uma página que foi eliminada.
 Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de eliminação].',
@@ -1295,8 +1295,7 @@ Você pode ver esta comparação; detalhes podem ser encontrados no [{{fullurl:{
 'revdelete-no-file' => 'O arquivo especificado não existe.',
 'revdelete-show-file-confirm' => 'Tem a certeza de que quer visualizar uma revisão eliminada do arquivo "<nowiki>$1</nowiki>" de $2 em $3?',
 'revdelete-show-file-submit' => 'Sim',
-'revdelete-selected' => "'''{{PLURAL:$2|Edição selecionada|Edições selecionadas}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Evento de registro selecionado|Eventos de registro selecionados}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Evento de registro selecionado|Eventos de registro selecionados}}:',
 'revdelete-text-text' => 'Revisões apagadas continuarão a aparecer na página de histórico, mas parte de seus conteúdos estarão inacessíveis ao público.',
 'revdelete-text-file' => 'Versões dos arquivos apagados continuarão a aparecer no arquivo de histórico, mas parte de seus conteúdos estarão inacessíveis ao público.',
 'logdelete-text' => 'Eventos de log apagados continuarão a aparecer nos logs, mas parte de seus conteúdos estarão inacessíveis ao público.',
@@ -2576,7 +2575,7 @@ A eliminação de tais páginas foi restrita, a fim de se evitarem problemas aci
 'delete-warning-toobig' => 'Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.
 Eliminá-la poderá causar problemas na base de dados de {{SITENAME}};
 prossiga com cuidado.',
-'deleting-backlinks-warning' => "'''Cuidado:'''[[Special:WhatLinksHere/{{FULLPAGENAME}}|Outras páginas]] se ligam ou redirecionam para a página que você está prestes a deletar.",
+'deleting-backlinks-warning' => "'''Cuidado:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Outras páginas]] se ligam ou redirecionam para a página que você está prestes a deletar.",
 
 # Rollback
 'rollback' => 'Reverter edições',
index 8f070e4..aae2901 100644 (file)
@@ -2479,18 +2479,13 @@ Parameters:
 'revdelete-show-file-submit' => 'Reply to {{msg-mw|Revdelete-show-file-confirm}}.
 
 {{Identical|Yes}}',
-'revdelete-selected' => '{{RevisionDelete}}
-Parameters:
-* $1 - page title
-* $2 - number of revisions
-See also:
-* {{msg-mw|Logdelete-selected}}
-[[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]',
 'logdelete-selected' => '{{RevisionDelete}}
 Parameters:
 * $1 - number of log events
+* $2 - localized name of Special:Log, maybe with type as subpage [unused]
 See also:
-* {{msg-mw|Revdelete-selected}}',
+* {{msg-mw|Revdelete-selected-text}}
+* {{msg-mw|Revdelete-selected-file}}',
 'revdelete-text-text' => '{{RevisionDelete}}
 This is the introduction explaining the feature.
 
@@ -4898,7 +4893,10 @@ See also:
 # List duplicated files special page
 'listduplicatedfiles' => '{{doc-special|ListDuplicatedFiles}}',
 'listduplicatedfiles-summary' => 'Summary at top of Special:ListDuplicatedFiles',
-'listduplicatedfiles-entry' => 'A list item on Special:ListDuplicatedFiles. $1 is the file name (no namespace prefix). $2 is the number of duplicates this file has. $3 is the name of the duplicate search page (aka "Special:FileDuplicateSearch/Foo.png" or "Spécial:Recherche_fichier_en_double/Firefox.png")',
+'listduplicatedfiles-entry' => 'A list item on [[Special:ListDuplicatedFiles]]. Parameters:
+* $1 - the file name (no namespace prefix)
+* $2 - the number of duplicates this file has
+* $3 - the name of the duplicate search page (aka "Special:FileDuplicateSearch/Foo.png" or "Spécial:Recherche_fichier_en_double/Firefox.png")',
 
 # Unused templates
 'unusedtemplates' => '{{doc-special|UnusedTemplates}}',
@@ -5231,6 +5229,7 @@ See also:
 * {{msg-mw|Booksources-text|text}}",
 'booksources-search-legend' => 'Box heading on [[Special:BookSources|book sources]] special page. The box is for searching for places where a particular book can be bought or viewed.',
 'booksources-isbn' => '{{optional}}
+This is a label that appears before a text input field on the Special:BookSources page.
 {{Identical|ISBN}}',
 'booksources-go' => 'Name of button in [[Special:BookSources]]
 
@@ -9821,9 +9820,7 @@ Most languages use a space, but some Asian languages, such as Thai and Chinese,
 'percent' => '{{optional}}',
 'parentheses' => '{{optional}}',
 'brackets' => '{{Optional}}',
-'quotation-marks' => '{{optional}}
-
-Quotation marks, for quoting, sometimes titles etc., depending on the language.
+'quotation-marks' => 'Quotation marks, for quoting, sometimes titles etc., depending on the language.
 
 See: [[w:Non-English usage of quotation marks|Non-English usage of quotation marks on Wikipedia]].
 
index 0c6ec4c..5e7baa9 100644 (file)
@@ -956,7 +956,7 @@ icha [{{fullurl:{{FULLPAGENAME}}|action=edit}} kay p'anqata llamk'apuy]</span>."
 Kaytam rurayta atinkiman: kay p'anqap sutinta [[Special:Search/{{PAGENAME}}|huk p'anqakunapi maskay]]
 icha payman kapuq <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hallch'akunapi maskay]</span>,
 ichataq kay p'anqata kamariyta manam saqillasunkichu.",
-'missing-revision' => "\"{{PAGENAME}}\" nisqa p'anqapaq #\$1 musuqchasqaqa manam kanchu.
+'missing-revision' => "\"{{FULLPAGENAME}}\" nisqa p'anqapaq #\$1 musuqchasqaqa manam kanchu.
 
 Kayqa tukurqanman qullusqa p'anchaman t'inkimuq mawk'ayasqa wiñay kawsay t'inkiraykuchá.
 Imaymanata [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} qulluy hallch'apim] tariykiman.",
@@ -1173,8 +1173,7 @@ Kay wakin kayta qhawayta atinkim; astawanchá rikunkiman [{{fullurl:{{#Special:L
 'revdelete-no-file' => 'Sapaqchasqa willañiqiqa manam kanchu.',
 'revdelete-show-file-confirm' => 'Allinta yachankichu "<nowiki>$1</nowiki>" willañiqimanta qullusqa $2-manta $3-pi musuqchasqata qhawayta munaspayki?',
 'revdelete-show-file-submit' => 'Arí',
-'revdelete-selected' => "'''{{PLURAL:$2|Akllasqa llamk'apusqa|Akllasqa llamk'apusqakuna}} [[:$1]]-manta:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Akllasqa tukusqa|Akllasqa tukusqakuna}} hallch'api:'''",
+'logdelete-selected' => "{{PLURAL:$1|Akllasqa tukusqa|Akllasqa tukusqakuna}} hallch'api:",
 'revdelete-confirm' => 'Ama hina kaspa, takyachiy munayniykita, qatiqninkunata riqsiyniykita, [[{{MediaWiki:Policy-url}}|kawpaykama]] rurayniykitapas.',
 'revdelete-suppress-text' => "Pakay ruranata '''kaylla kaptin''' llamk'achiy:
 * K'amiqchá willakuna
index 59716f4..258a1a9 100644 (file)
@@ -710,7 +710,7 @@ Ti pos [[Special:Search/{{PAGENAME}}|tschertgar il term]] sin in\'autra pagina,
 u [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear questa pagina]</span>.',
 'noarticletext-nopermission' => 'Questa pagina na cuntegna actualmain nagin text.
 Ti pos [[Special:Search/{{PAGENAME}}|tschertgar quest titel]] en autras paginas u <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tschertgar en ils protocols correspundents]</span>, ma ti n\'has betg ils dretgs da crear questa pagina.',
-'missing-revision' => 'La versiun #$1 da la pagina cun il num "{{PAGENAME}}" n\'exista betg.
+'missing-revision' => 'La versiun #$1 da la pagina cun il num "{{FULLPAGENAME}}" n\'exista betg.
 
 Quai capita savnes sche ti cliccas sin ina colliaziun antiquada en la cronologia per ina pagina ch\'è vegnida stizzada.
 Detagls pon vegnri chattads en il [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protocol da stizzar].',
@@ -939,8 +939,7 @@ Ti pos vesair quest diff; detagls pon vegnir chattads en il [{{fullurl:{{#Specia
 'revdelete-no-file' => "La datoteca specifitgada n'exista betg.",
 'revdelete-show-file-confirm' => 'Es ti segir che ti vuls vesar ina versiun stizzada da la datoteca "<nowiki>$1</nowiki>" dals $2 las $3?',
 'revdelete-show-file-submit' => 'Gea',
-'revdelete-selected' => "'''{{PLURAL:$2|Versiun tschernida|Versiuns tschernidas}} da [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Element dal protocol tschernì|Elements dal protocol tschernids}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Element dal protocol tschernì|Elements dal protocol tschernids}}:',
 'revdelete-confirm' => 'Confermescha che ti vuls far quai, che ti chapeschas las consequenzas e che ti fas quai en accordanza cun [[{{MediaWiki:Policy-url}}|las directivas]].',
 'revdelete-suppress-text' => "Ti duessas '''be''' supprimer en quests cas: 
 * Infurmaziuns offendentas
index df2a783..9c97b38 100644 (file)
@@ -1024,7 +1024,7 @@ puteți <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAME
 sau puteți [{{fullurl:{{FULLPAGENAME}}|action=edit}} crea această pagină]</span>.',
 'noarticletext-nopermission' => 'Actualmente, această pagină este lipsită de conținut.
 Puteți [[Special:Search/{{PAGENAME}}|căuta acest titlu]] în alte pagini sau puteți <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} căuta înregistrări în jurnale]</span>; nu aveți însă permisiunea de a crea această pagină.',
-'missing-revision' => 'Versiunea nr. $1 a paginii „{{PAGENAME}}” nu există.
+'missing-revision' => 'Versiunea nr. $1 a paginii „{{FULLPAGENAME}}” nu există.
 
 Acest lucru se întâmplă de obicei atunci când se accesează o legătură expirată către istoricul unei pagini șterse.
 Detalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].',
@@ -1262,8 +1262,7 @@ funcție, fie versiunea specificată nu există, ori sunteți pe cale să ascund
 'revdelete-no-file' => 'Fișierul specificat nu există.',
 'revdelete-show-file-confirm' => 'Sigur doriți să vedeți versiunea ștearsă a fișierului „<nowiki>$1</nowiki>” din $2 ora $3?',
 'revdelete-show-file-submit' => 'Da',
-'revdelete-selected' => "'''{{PLURAL:$2|Versiunea aleasă|Versiunile alese}} pentru [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Revizia aleasă|Reviziile alese}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Revizia aleasă|Reviziile alese}}:',
 'revdelete-text-text' => 'Versiunile șterse vor continua să fie vizibile în istoricul paginii, însă anumite părți ale conținutului acestora vor fi inaccesibile publicului.',
 'revdelete-text-file' => 'Versiunile șterse ale fișierului vor continua să fie vizibile în istoricul fișierului, însă anumite părți ale conținutului acestora vor fi inaccesibile publicului.',
 'logdelete-text' => 'Evenimentele șterse ale jurnalului vor continua să fie vizibile în jurnale, însă anumite părți ale conținutului acestora vor fi inaccesibile publicului.',
index d13b421..26cc646 100644 (file)
@@ -759,7 +759,7 @@ Tu puè [[Special:Search/{{PAGENAME}}|cercà pe quiste titele]] jndr\'à otre p
 'noarticletext-nopermission' => "Pe mò non ge stè teste jndr'à sta pàgene.
 Tu puè [[Special:Search/{{PAGENAME}}|cercà pe stu titole]] jndr'à otre pàggene,
 o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cirche jndr'à l'archivije cullegate]</span>, ma non ge tìne le permesse pe ccrejà sta pàgene.",
-'missing-revision' => "'A revisione #\$1 d'a pàgene chiamate \"{{PAGENAME}}\" non g'esiste.
+'missing-revision' => "'A revisione #\$1 d'a pàgene chiamate \"{{FULLPAGENAME}}\" non g'esiste.
 
 Quiste succede normalmende purcé 'u cunde jè collegate a 'na pàgene ca ha state scangellate.
 Le dettaglie le puè acchià jndr'à l'[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} archivije de le scangellaziune].",
@@ -993,8 +993,7 @@ Tu puè vedè ste differenze; pò essere ca stonne cchiù 'mbormaziune jndr'à l
 'revdelete-no-file' => "'U file specificate non g'esiste.",
 'revdelete-show-file-confirm' => 'Si secure ca vuè ccu vide \'a revisione scangellate d\'u file "<nowiki>$1</nowiki>" \'u $2 a le $3?',
 'revdelete-show-file-submit' => 'Sìne',
-'revdelete-selected' => "'''{{PLURAL:$2|Revisiona selezionete|Revisiune selezionete}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Fatte de l'archivije selezionete|Fatte de l'archivije selezionete}}:'''",
+'logdelete-selected' => "{{PLURAL:$1|Fatte de l'archivije selezionete|Fatte de l'archivije selezionete}}:",
 'revdelete-confirm' => 'Pe piacere conferme ca tu vuè ccu face sta cose, ce tu è capite le conseguenze e ce quidde ca ste face jè in accorde cu le [[{{MediaWiki:Policy-url}}|reghele]] de Uicchipèdie.',
 'revdelete-suppress-text' => "'A soppressione adda essere ausate '''sulamende''' jndr'à le case seguende:
 * 'Mbormaziune potenzialmende offenzive
index 0c971d8..73e0cce 100644 (file)
@@ -1182,7 +1182,7 @@ $2
 'noarticletext-nopermission' => 'В настоящее время на этой странице нет текста.
 Вы можете [[Special:Search/{{PAGENAME}}|найти упоминание данного названия]] на других страницах,
 или <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} найти соответствующие записи журналов].</span> У вас нет разрешения создать данную страницу.',
-'missing-revision' => 'Версия $1 страницы «{{PAGENAME}}» не существует.
+'missing-revision' => 'Версия $1 страницы «{{FULLPAGENAME}}» не существует.
 
 Это обычно бывает, если последовать по устаревшей ссылке на страницу, которая была удалена.
 Подробности могут быть в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].',
@@ -1415,8 +1415,9 @@ $3 {{GENDER:$3|указал|указала}} следующую причину:
 'revdelete-no-file' => 'Указанный файл не существует.',
 'revdelete-show-file-confirm' => 'Вы уверены, что вы хотите просмотреть удалённую версию файла «<nowiki>$1</nowiki>» от $2, $3?',
 'revdelete-show-file-submit' => 'Да',
-'revdelete-selected' => "'''{{PLURAL:$2|1=Выбранная версия|Выбранные версии}} страницы [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|1=Выбранная запись|Выбранные записи}} журнала:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Выбранная версия|Выбранные версии}} [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Выбранная версия файла|Выбранные версии файла}} [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|1=Выбранная запись|Выбранные записи}} журнала:',
 'revdelete-text-text' => 'Удалённые версии будут по-прежнему видны в истории страницы, но части их содержимого будут недоступны для участников.',
 'revdelete-text-file' => 'Удалённые версии файла будут по-прежнему видны в истории страницы, но части их содержимого будут недоступны для участников.',
 'logdelete-text' => 'Удалённые события в журнале будут по-прежнему видны в журналах, но части их содержимого будут недоступны для участников.',
index c0b351e..69393fa 100644 (file)
@@ -831,7 +831,7 @@ $2
 або [{{fullurl:{{FULLPAGENAME}}|action=edit}} вытворити сторінку з таков назвов]</span>.',
 'noarticletext-nopermission' => 'Теперь на тій сторінцї тексту не є.
 Можете [[Special:Search/{{PAGENAME}}|глядати тоту назву]] в іншых сторінках, або <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} глядати в лоґах]</span>, но вы не мате права створити тоту сторінку.',
-'missing-revision' => 'Ревізія #$1 сторінкы з назвов „{{PAGENAME}}“ не є.
+'missing-revision' => 'Ревізія #$1 сторінкы з назвов „{{FULLPAGENAME}}“ не є.
 
 Гевсе звычайно запрічінене так, же наслїдовали сьте застарїлый історічный одказ на сторінку, котра была уж змазана.
 Детайлы можуть быти найджены в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} книзї змазаных сторінок].',
@@ -1049,8 +1049,7 @@ $3 зазначів тоту причіну: ''$2''",
 'revdelete-no-file' => 'Зазначеный файл не єствує.',
 'revdelete-show-file-confirm' => 'На певно собі хочете посмотрити вылучену ревізію файлу „<nowiki>$1</nowiki>“ з $2, $3?',
 'revdelete-show-file-submit' => 'Гей',
-'revdelete-selected' => "'''{{PLURAL:$2|Выбрана ревізія|Выбраны ревізії}} з [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Выбрана протоколована подїя|Выбраны протоколованы подїї}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Выбрана протоколована подїя|Выбраны протоколованы подїї}}:',
 'revdelete-confirm' => 'Просиме Вас, потвердьте, же то хочете справды зробити, же собі усвідомлюєте резултат і же є то в згодї з  [[{{MediaWiki:Policy-url}}|правилами]].',
 'revdelete-suppress-text' => "Затаёваня бы ся мало хосновати  ''лем''' в такых припадах:
 * Потенціално огваряючі інформації
index 538ac44..fa89f2b 100644 (file)
@@ -381,9 +381,18 @@ $messages = array(
 'oct' => 'ओक्टो.',
 'nov' => 'नवे.',
 'dec' => 'डिस.',
+'january-date' => 'जनवरी $1',
 'february-date' => 'फरवरी $1',
+'march-date' => 'मार्च $1',
+'april-date' => 'अप्रैल $1',
+'may-date' => 'मई $1',
+'june-date' => 'जुन $1',
 'july-date' => 'जूलाई $1',
+'august-date' => 'अगस्त $1',
+'september-date' => 'March $1',
 'october-date' => 'अक्तूबर $1',
+'november-date' => 'नवम्बर $1',
+'december-date' => 'दिसम्बर $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|वर्गः|वर्गाः}}',
@@ -396,10 +405,10 @@ $messages = array(
 'category-subcat-count' => '$2 इत्येषु {{PLURAL:$2|वर्गेऽस्मिन् अधो लिखिताः उपवर्गाः विद्यन्ते |वर्गेऽस्मिन् {{PLURAL:$1|अधो लिखितः उपवर्गः अस्ति|अधो लिखिताः $1 उपवर्गाः सन्ति}}}}',
 'category-subcat-count-limited' => 'अस्मिन् वर्गे {{PLURAL:$1|अधो लिखितः $1 वर्गः अस्ति|अधो लिखिताः $1 वर्गाः सन्ति}}',
 'category-article-count' => '$2 इत्येषु {{PLURAL:$2|वर्गेऽस्मिन् अधो लिखितानि पृष्ठानि विद्यन्ते |वर्गेऽस्मिन् {{PLURAL:$1|अधो लिखितं पृष्ठम् अस्ति|अधो लिखितानि $1 पृष्ठानि सन्ति}}}}',
-'category-article-count-limited' => 'à¤\85धà¥\8bलिà¤\96ितà¤\82 {{PLURAL:$1|पà¥\83षà¥\8dठमà¥\8d à¤\85सà¥\8dमिनà¥\8d à¤¶à¥\8dरà¥\87णà¥\8dयामà¥\8d à¤\85सà¥\8dति|$1 à¤ªà¥\83षà¥\8dठाणि à¤\85सà¥\8dमिनà¥\8d à¤¶à¥\8dरà¥\87णà¥\8dयाà¤\82 à¤¸à¤¨à¥\8dति}}।',
+'category-article-count-limited' => 'निमà¥\8dनà¥\8bलà¥\8dलिà¤\96ित{{PLURAL:$1|पà¥\83षà¥\8dठà¤\82|$1 à¤ªà¥\83षà¥\8dठानि}} à¤µà¤°à¥\8dà¤\97à¥\87ऽसà¥\8dमिनà¥\8d {{PLURAL:$1|à¤\85सà¥\8dति|$1 à¤¸à¤¨à¥\8dति}}',
 'category-file-count' => '$2 इत्येषु {{PLURAL:$2|वर्गेऽस्मिन् अधो उल्लिखिताः सञ्चिकाः विद्यन्ते |वर्गेऽस्मिन् {{PLURAL:$1|अधो उल्लिखिता सञ्चिका अस्ति|अधो उल्लिखिताः $1 सञ्चिकाः सन्ति}}}}',
 'category-file-count-limited' => 'निम्नोल्लिखित{{PLURAL:$1|सञ्चिका|$1 सञ्चिकाः}} वर्गेऽस्मिन् {{PLURAL:$1|अस्ति|$1 सन्ति}}',
-'listingcontinuesabbrev' => 'à¤\86à¤\97ामि.',
+'listingcontinuesabbrev' => 'à¤\85नà¥\81वरà¥\8dततà¥\87',
 'index-category' => 'अनुक्रमणिकापृष्ठानि',
 'noindex-category' => 'नानुक्रमणिकपृष्ठानि',
 'broken-file-category' => 'अविद्यानानां सञ्चिकानाम् आवलिः',
@@ -434,7 +443,7 @@ $messages = array(
 'vector-action-unprotect' => 'संरक्षणं परिवर्तयतु',
 'vector-view-create' => 'सृज्यताम्',
 'vector-view-edit' => 'सम्पाद्यताम्',
-'vector-view-history' => 'à¤\87तिहासà¤\83 à¤¦à¤°à¥\8dश्यताम्',
+'vector-view-history' => 'à¤\87तिहासà¤\83 à¤¦à¥\83श्यताम्',
 'vector-view-view' => 'पठ्यताम्',
 'vector-view-viewsource' => 'स्रोतः दृश्यताम्',
 'actions' => 'क्रियाः',
@@ -525,10 +534,10 @@ $messages = array(
 
 'badaccess' => 'अनुमतिदोषः',
 'badaccess-group0' => 'यस्याः क्रियायाः कृते भवान्/भवती उद्युक्ता, तस्यै क्रियायै अनुमति नास्ति ।',
-'badaccess-groups' => 'यस्याः क्रियायाः कृते भवान्/भवती उद्युक्ता, तस्यै क्रियायै $1 {{PLURAL:$2|अस्मिन् समूहे|एतेषु समूहेषु}} अनुमति नास्ति ।',
+'badaccess-groups' => 'यस्याः क्रियायाः कृते भवान्/भवती उद्युक्ता, तस्यै क्रियायै $1 {{PLURAL:$2|अस्मिन् समूहे|एतेषु समूहेषु}} अनुमति नास्ति ।',
 
 'versionrequired' => 'मीडीयाविक इत्यस्य $1 संस्करणम् आवश्यकम् ।',
-'versionrequiredtext' => 'अस्य पृष्ठस्य उपयोगार्थं मीडीयाविकि इत्यस्य $1 संस्करणम् आवश्यकम् । पश्यतु [[Special:संस्करणम्|संस्करणानि]].',
+'versionrequiredtext' => 'अस्य पृष्ठस्य उपयोगार्थं मीडीयाविकि इत्यस्य $1 संस्करणम् आवश्यकम् । पश्यतु [[Special:Version|version page]] ।',
 
 'ok' => 'अस्तु',
 'pagetitle' => '$1 - {{SITENAME}}',
@@ -536,9 +545,9 @@ $messages = array(
 'youhavenewmessages' => '{{PLURAL:$3|भवतः/भवत्याः कृते}} $1 ($2).',
 'youhavenewmessagesfromusers' => '{{PLURAL:$4|भवतः/भवत्याः कृते}} $1  {{PLURAL:$3|अन्यस्मात् योजकात्|$3 अन्येभ्यः योजकेभ्यः}} अस्ति ($2)।',
 'youhavenewmessagesmanyusers' => 'नैकेभ्यः योजकेभ्यः ते $1 सन्ति ($2) ।',
-'newmessageslinkplural' => '{{PLURAL:$1|नूतनः सन्देशः|नूतनसन्देशाः}}',
+'newmessageslinkplural' => '{{PLURAL:$1|नà¥\82तनà¤\83 à¤¸à¤¨à¥\8dदà¥\87शà¤\83|नà¥\82तनाà¤\83 à¤¸à¤¨à¥\8dदà¥\87शाà¤\83}}',
 'newmessagesdifflinkplural' => 'सद्यः {{PLURAL:$1|परिवर्तनम्| परिवर्तनानि}}',
-'youhavenewmessagesmulti' => '$1 अत्र भवते नूतनसन्देशाः सन्ति',
+'youhavenewmessagesmulti' => 'भवते नूतनसन्देशाः सन्ति अत्र $1',
 'editsection' => 'सम्पाद्यताम्',
 'editold' => 'सम्पाद्यताम्',
 'viewsourceold' => 'स्रोतः दृश्यताम्',
@@ -578,102 +587,114 @@ $messages = array(
 
 # Main script and global functions
 'nosuchaction' => 'तादृशं कार्यं न विद्यते',
-'nosuchactiontext' => 'अनेन समरूप-संसाधन-अवस्थापकेन (URL इति) वर्णिता क्रिया अमान्याऽस्ति।
-भवता समरूप-संसाधन-अवस्थापकं अपटंकितं स्यात्, अथवा असुष्ठु संबंधनम् अनुसृतम् स्यात्।
-इदम् {{SITENAME}} इत्यनेन प्रयुक्ते क्रमादेशे त्रुटिर्वा स्यात्।',
-'nosuchspecialpage' => 'तादृशं विशेषपृष्टं न विद्यते',
-'nospecialpagetext' => '<strong>भवता एकम् अमान्यं विशिष्टपृष्ठं याचितम्। </strong>
-मान्यानां विशिष्टपृष्ठाणां सूचिका [[Special:SpecialPages|{{int:specialpages}}]] इत्यत्र प्राप्तुं शक्यते।',
+'nosuchactiontext' => 'अनेन सार्वसङ्केन (URL) दर्शिता क्रिया अयोग्या अस्ति । अयोग्यं त्रुटियुक्तं वा सार्वसङ्केतं भवता/भवत्या लिखितं स्यात् ।',
+'nosuchspecialpage' => 'तादृशं विशेषपृष्ठं न विद्यते',
+'nospecialpagetext' => '<strong>अयोग्यं विशिष्टपृष्ठं भवता/भवत्या ईप्सितम् ।</strong> विद्यमानानि विशिष्टपृष्ठानि [[Special:SpecialPages|{{int:specialpages}}]] अत्र प्राप्यन्ते ।',
 
 # General errors
 'error' => 'दोषः',
-'databaseerror' => 'दत्ताधारे दोषः',
-'laggedslavemode' => 'प्राक्प्रबोधनम्:अस्मिन् पृष्ठे सद्योजातानि परिशोधनानि न स्युः ।',
-'readonly' => 'दत्तधारः कीलितः',
-'enterlockreason' => 'तन्त्रितीकरणस्य कारणं ददातु, अपि च आकलितं ददातु यत् तन्त्रणं कदा उद्घाट्यिष्यते।',
-'readonlytext' => 'समंकाधारं वर्तमानकाले तन्त्रितमस्ति नूतनान् प्रविष्टीन् विरुध्य तथा च अन्यानि परिवर्तनानि विरुध्य। इदं नियमिततया समंकाधार परिचर्याऽर्थं तथा स्यात्। तत्पश्चादिदं सामान्यतां संप्राप्स्यति।
-तन्त्रितीकारकेन प्रबन्धकेन इदं कारणं प्रदत्तम्: $1',
+'databaseerror' => 'दत्तांशनिधौ (database) दोषः',
+'databaseerror-text' => 'दत्तांश-प्रश्नस्य (database query) दोषः प्राप्तः ।
+एषः दोषः तन्त्रांशस्य त्रुटिः स्यात् ।',
+'databaseerror-textcl' => 'दत्तांश-प्रश्नस्य (database query) दोषः प्राप्तः ।',
+'databaseerror-query' => 'प्रश्नः: $1',
+'databaseerror-function' => 'नियोज्यम्: $1',
+'databaseerror-error' => 'दोषः: $1',
+'laggedslavemode' => '<strong>पूर्वसूचना :</strong>
+सद्यः परिवर्तनानि अत्र न स्युः ।',
+'readonly' => 'दत्तांशनिधिः (database) कीलितः',
+'enterlockreason' => 'कीलनस्य कारणं ददातु, कीलनं कियान् कालः भविष्यति इति च लिखतु ।',
+'readonlytext' => 'नवीनदत्तांशनिवेशार्थं (database entry) सद्यः दत्तांशः स्थिगितः । नियमितव्यवस्थिकरणानन्तरं पुनः निवेशाय अवकाशः भवति । $1',
 'missing-article' => 'दत्तनिधौ (in database) $2 अन्तः कुत्रापि "$1" न प्राप्तम् ।
 
 प्रायः अपाकृतस्य पृष्ठस्य इतिहासदर्शनस्य चेष्टाकाले एवं भवति ।
 
-तादृशी स्थितिः यदि नास्ति, तर्हि तन्त्रांशे वद्यमाना त्रुटिः भवेत् । कृपया कमपि [[Special:ListUsers/sysop|प्रबन्धकम्]] अस्य पृष्ठस्य सार्वसङ्केतं (U.R.L.) सूच्यताम् ।',
+तादà¥\83शà¥\80 à¤¸à¥\8dथितिà¤\83 à¤¯à¤¦à¤¿ à¤¨à¤¾à¤¸à¥\8dति, à¤¤à¤°à¥\8dहि à¤¤à¤¨à¥\8dतà¥\8dराà¤\82शà¥\87 à¤µà¤¿à¤¦à¥\8dयमाना à¤¤à¥\8dरà¥\81à¤\9fिà¤\83 à¤­à¤µà¥\87तà¥\8d à¥¤ à¤\95à¥\83पया à¤\95मपि [[Special:ListUsers/sysop|पà¥\8dरबनà¥\8dधà¤\95मà¥\8d]] à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤¾à¤°à¥\8dवसà¤\99à¥\8dà¤\95à¥\87तà¤\82 (U.R.L.) à¤¸à¥\82à¤\9aà¥\8dयतामà¥\8d à¥¤',
 'missingarticle-rev' => '(संस्करणं# :$1)',
-'missingarticle-diff' => '(वà¥\8dयतिरà¥\87à¤\95: $1, $2)',
-'readonly_lag' => 'मà¥\81à¤\96à¥\8dय-समà¤\82à¤\95ाधार-परिवà¥\87शà¤\95à¤\82 à¤\89पमà¥\81à¤\96à¥\8dय-समà¤\82à¤\95ाधार-परिवà¥\87शà¤\95सà¥\8dय à¤¸à¤\82पà¥\8dरापणातà¥\8d à¤ªà¥\82रà¥\8dवà¥\87 à¤\8fव à¤¸à¥\8dवतà¤\83 à¤¤à¤¨à¥\8dतà¥\8dरितमà¥\8d à¤\85सà¥\8dति।',
+'missingarticle-diff' => '(भà¥\87दà¤\83: $1, $2)',
+'readonly_lag' => 'सहायà¤\95तनà¥\8dतà¥\8dराà¤\82शà¤\83 (slave database) à¤¯à¤¾à¤µà¤¤à¥\8d à¤®à¥\81à¤\96à¥\8dयतनà¥\8dतà¥\8dराà¤\82शातà¥\8d à¤\95िमपि à¤¸à¥\8dवà¥\80à¤\95à¥\81रà¥\8dयातà¥\8d, à¤¤à¤¾à¤µà¤¤à¥\8d à¤®à¥\81à¤\96à¥\8dयतनà¥\8dतà¥\8dराà¤\82शà¤\83 à¤¤à¤¨à¥\8dतà¥\8dराà¤\82शमाधà¥\8dयमà¥\87न à¤¸à¥\8dवयमà¥\87व à¤\95à¥\80लितà¤\83 à¤\85भवतà¥\8d',
 'internalerror' => 'आन्तरिकः दोषः',
 'internalerror_info' => 'आन्तरिकः दोषः: $1',
-'fileappenderrorread' => 'संलग्नीकरणकाले $1 पठितुम् अशक्यम्।',
-'fileappenderror' => '$1 इत्यस्य पश्चात् $2 इति योजयितुं नाशक्नोत्।',
-'filecopyerror' => '$1 इत्येतस्याः संचिकायाः  $2 इति प्रतिलिपिं कर्तुं नाशक्नोत्।',
-'filerenameerror' => '$1 इति संचिकायाः $2 इति पुनर्नामकरणं कर्तुं नाशक्नोत्।',
-'filedeleteerror' => '$1 इति सञ्चिकाम् अपाकर्तुं नाशक्नोत्।',
-'directorycreateerror' => '$1 इति निर्देशिकां स्रष्टुं न अपारयत्',
-'filenotfound' => '"$1" इति सञ्चिका न लब्धा।',
-'fileexistserror' => '$1 इति संचिकायां लेखनम् अशक्यम् । सञ्चिका वर्तते  एव।',
-'unexpected' => 'अप्रतीक्षितमूल्यम् : "$1"="$2"।',
-'formerror' => 'त्रुटिः : प्रारूपं समर्पयितुं न अपारयत्',
-'badarticleerror' => 'अस्मिन् पृष्ठे एषा क्रिया कर्तुं न शक्या।',
-'cannotdelete' => '$1 इति पृष्ठं संचिका वा अपाकर्तुं नाशक्नोत्।
-इदं खलु केनचिदन्येन पूर्वे एव अपाकृतं स्यात्।',
-'cannotdelete-title' => ' "$1" पृष्ठं निर्मार्जयितुम् अशक्यम्',
-'delete-hook-aborted' => 'आलम्बेन अपमार्जनम् अपनीतम् । अनेन विवरणं न दत्तम् ।',
+'fileappenderrorread' => 'योजनकाले "$1" पठितुं न शक्यते ।',
+'fileappenderror' => '$1 इत्येनं $2 इत्येन सह योजयितुं न शक्यते ।',
+'filecopyerror' => 'Could not copy file "$1" to "$2".',
+'filerenameerror' => '$1 सञ्चिकायाः $2 इति पुनर्नामकरणं निष्फलम् ।',
+'filedeleteerror' => '$1 इति सञ्चिका अपाकर्तुं न शक्यते ।',
+'directorycreateerror' => "'''$1''' इति विभागः रचितुं न शक्यते ।",
+'filenotfound' => '\'"$1"\' सञ्चिका न लब्धा ।',
+'fileexistserror' => '$1 सञ्चिकायां नोल्लेखितं : सञ्चिका वर्तते इति ।',
+'unexpected' => 'अनपेक्षितं मूल्यम् : "$1"="$2"',
+'formerror' => 'दोषः : प्रपत्रं (form) न प्रेषितम्',
+'badarticleerror' => 'अस्मिन् पृष्ठे एषा क्रिया कर्तुं न शक्यते ।',
+'cannotdelete' => "''$1'' इति पृष्ठं सञ्चिका वा अपाकर्तुं न शक्यते ।
+अन्येन केनापि पूर्वमेव एषा सञ्चिका अपाकृता स्यात् ।",
+'cannotdelete-title' => '"$1" पृष्ठम् अपार्कर्तुं न शक्यते',
+'delete-hook-aborted' => 'hook द्वारा अपाकरणक्रिया मध्ये एव स्थगिता । स्थगनस्य कारणं न दत्तम् ।',
+'no-null-revision' => '"$1" एतस्मै पृष्ठाय नवीनं रिक्तं संस्करणं रचितुं न शक्यते',
 'badtitle' => 'अशुद्धं शिरोनाम',
-'badtitletext' => 'à¤\87पà¥\8dसितà¤\82 à¤¶à¥\80रà¥\8dषà¤\95मà¥\8d à¤\85मानà¥\8dयà¤\82, à¤°à¤¿à¤\95à¥\8dतमà¥\8d, à¤\85यà¥\8bà¤\97à¥\8dयà¤\82, à¤\85नà¥\8dयभाषà¥\80यà¤\82, à¤µà¤¿à¤\95ि-à¤\9cालविहाय च अस्ति । पृष्ठशीर्षकाय अयोग्यानि अक्षराणि चिह्नानि वा तस्मिन् भवेयुः ।',
-'perfcached' => 'à¤\85नà¥\81पदà¥\8bà¤\95à¥\8dतà¤\82 à¤²à¥\87à¤\96à¤\83 à¤\95à¥\88शà¥\8d à¤\87तà¥\8dयà¥\87तसà¥\8dमादà¥\8d à¤\85सà¥\8dति, à¤\85तà¤\83 à¤\85दà¥\8dयतनà¤\82 à¤¨ à¤¸à¥\8dयातà¥\8d।  {{PLURAL:$1|one result is|$1 results are}}',
-'perfcachedts' => 'अधोनिदेशितलेखः सञ्चितः । पूर्वपदोन्नतिः $1 । $4 {{PLURAL:}} अधिकाधिकपरिणामः सञ्चये उपलब्धः ।',
-'querypage-no-updates' => 'अस्य पृष्ठस्य परिशोधनं विफलीकृतमस्ति । 
-सद्यः अत्रत्यः विषयः न नवीक्रियते ।',
+'badtitletext' => 'à¤\88पà¥\8dसितà¤\82 à¤¶à¥\80रà¥\8dषà¤\95मà¥\8d à¤\85मानà¥\8dयà¤\82, à¤°à¤¿à¤\95à¥\8dतमà¥\8d, à¤\85यà¥\8bà¤\97à¥\8dयमà¥\8d, à¤\85नà¥\8dयभाषà¥\80यà¤\82, à¤­à¤¾à¤·à¤¾à¤¨à¥\8dतरातà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथलातà¥\8d च अस्ति । पृष्ठशीर्षकाय अयोग्यानि अक्षराणि चिह्नानि वा तस्मिन् भवेयुः ।',
+'perfcached' => 'à¤\85धà¥\8b à¤\89लà¥\8dलिà¤\96िताà¤\83 à¤¸à¥\82à¤\9aनाà¤\83 à¤ªà¥\81रातनायाà¤\83 à¤\89पसà¥\8dमà¥\83तà¥\8dयाà¤\83 (cached) à¤\97à¥\83हà¥\8dणिताà¤\83, à¤\85तà¤\83 à¤¤à¤¤à¥\8dर à¤¦à¥\8bषाà¤\83 à¤­à¤µà¥\87यà¥\81à¤\83 à¥¤  à¤\85धिà¤\95ाधिà¤\95{{PLURAL:$1|परिणाम|$1परिणामाà¤\83}} à¤\85तà¥\8dर à¤¸à¤¨à¥\8dति à¥¤',
+'perfcachedts' => 'अधो उल्लिखिताः सूचनाः पुरातनायाः उपस्मृत्याः (cached) गृह्णिताः । तस्यां उपस्मृत्यां $1 समये परिर्वतनम् अभूत् ।
+अधिकाधिक{{PLURAL:$1|परिणाम|$1परिणामाः}} अत्र सन्ति ।',
+'querypage-no-updates' => 'अस्मिन् पृष्ठे परिवर्तनं अधुना प्रतिबन्धितमस्ति । अत्रस्थां पुरातनसूचनां नवीनसूचनया सह अधुना परिर्वतयितुं न शक्यते ।',
 'viewsource' => 'स्रोतः दृश्यताम्',
-'viewsource-title' => '$1 इत्येतस्य स्रोतः दृश्यताम् ।',
-'actionthrottled' => 'कार्यम् अवरुद्धम् अस्ति',
-'actionthrottledtext' => "'स्प्याम्'इत्येतस्य अवरोधाय अल्पे काले अत्यधिकवारम् अस्य कार्यकरणम् अवरुद्धम् अस्ति । 
-कृपया किञ्चित्कालानन्तरं पुनः प्रयत्नः क्रियताम् ।",
-'protectedpagetext' => 'सम्पादनस्य अवरोधाय इदं पृष्ठं सुरक्षितमस्ति ।',
-'viewsourcetext' => 'भवान् एतस्य पृष्ठस्य स्रोतः द्रष्टुं तस्य प्रतिलिपिं कर्तुम् अर्हति।',
-'viewyourtext' => "भवान् अस्य पृष्ठस्य स्रोतसि '''भवतः सम्पादनानि''' द्रष्टुं प्रतिलिपिं कर्तुं च अर्हति ।",
-'protectedinterface' => 'इदं पृष्ठं तंत्रांशाय अन्तराफलकं ददाति, तथा च दुरुपयोगात् वारणाय सुरक्षितमस्ति ।',
-'editinginterface' => "'''अवधीयताम्'''  तन्त्रांशस्य विन्यासं यत् पृष्ठं रचयति तद् भवान् अधुना सम्पादयति । अत्र कृतानि परिवर्तनानि अन्येषाम् उपयोक्तॄणां पृष्ठविन्यासमपि परिवर्तयन्ति ।  अनुवादार्थम्   [//translatewiki.net/wiki/Main_Page?setlang=sa translatewiki.net] स्थानीयतानयनपरियोजनायाः उपयोगः क्रियताम्  ।",
-'cascadeprotected' => 'इदं पृष्ठं संपादनात् सुरक्षितमस्ति, यतः इदं अधोलिखितानां {{PLURAL:$1| पृष्ठस्य|पृष्ठाणां}} सुरक्षा-सोपाने समाहितं वर्तते।
-$2',
-'namespaceprotected' => 'भवान् "$1" इति नामाकाशे विद्यमानान् पृष्ठान् परिवर्तितुं अनुमतिं न धारयति।',
-'customcssprotected' => 'भवान् इदं पृष्ठं सम्पादयितुम् अनुमतः नास्ति, यतो हि अस्मिन् अन्यस्य प्रयोक्तुः वैयक्तिकचयनानि सन्ति।',
-'customjsprotected' => 'भवान् इदं जावालिपियुक्तं पृष्ठं सम्पादयितुम् अनुमतः नास्ति, यतो हि अस्मिन् अन्यस्य प्रयोक्तुः वैयक्तिकचयनानि सन्ति।',
-'ns-specialprotected' => 'विशिष्टानि पृष्ठानि परिवर्तयितुं न शक्यन्ते।',
-'titleprotected' => 'सदस्य [[User:$1|$1]] इत्यनेन एतत्-शीर्षकीयं पृष्ठं सृजनात् वारितमस्ति।
-एतदर्थं प्रदत्तं कारणम् "$2"।',
-'filereadonlyerror' => '"$1"  सञ्चिकापरिवर्तनं न शक्यते यतः "$2" शब्दकोशः केवलं पठनयोग्यः । प्रशासकेन पिहितं यः विवरणमिच्छति "$3".',
-'invalidtitle-knownnamespace' => ' "$2" नमावकाशेन "$3" पाठ्येन च युक्तम् अनर्हशीर्षम् ।',
-'invalidtitle-unknownnamespace' => 'अज्ञातनामवाकाशयुता  सङ्ख्या $1 पाठ्यः "$2" अपुष्टशीर्षिका ।',
-'exception-nologin' => 'न नामाभिलितम्',
-'exception-nologin-text' => 'एतस्मि पुटि प्रक्रियां वा ते प्रवेशः आवश्यकः ।',
+'viewsource-title' => '$1 इत्येतस्य स्रोतः दृश्यताम्',
+'actionthrottled' => 'अकाले कार्यमेतत् अवरुद्धम् अभवत्',
+'actionthrottledtext' => 'फल्गु(spam)-नियन्त्रणार्थम् एषा क्रिया मर्यादितवारं कर्तुं शक्यते । भवतः/भवत्याः सा मर्यादा समाप्ता । कृपया किञ्चित् कालानन्तरं प्रयत्नं करोतु ।',
+'protectedpagetext' => 'सम्पादनं, अन्यक्रियां च अवरोधयितुम् इदं पृष्ठं संरक्षितमस्ति ।',
+'viewsourcetext' => 'भवान्/भवती एतस्य पृष्ठस्य स्रोतः द्रष्टुं, मुद्रणं (print) कर्तुं च अर्हति ।',
+'viewyourtext' => "भवान्/भवती एतस्मिन् पृष्ठे '''स्वस्य सम्पादनानि'' द्रष्टुं  अर्हति, तेषां प्रतिलिपिम् (copy) अपि कर्तुं अर्हति ।",
+'protectedinterface' => 'एतत् पृष्ठं तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति । इदञ्च पृष्ठम् अयोग्यसम्पादनात् संरक्षितमस्ति ।  
+विकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।',
+'editinginterface' => '<strong>पूर्वसूचना :</strong> तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति तादृशस्य पृष्ठस्य भवता/भवत्या सम्पादनं क्रियमाणमस्ति । अस्य विकि-प्रकल्पस्य अन्ययोजकेभ्यः अपि अत्र कृतानि परिवर्तनानि भविष्यन्ति । 
+
+विकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।',
+'cascadeprotected' => 'इदं पृष्ठं सम्पादनात् संरक्षितमस्ति । कारणम् एतत् पृष्ठं {{PLURAL:$1|तादृशे पृष्ठे|तादृशेषु पृष्ठेषु}} अन्तर्भवति, यादृशेषु पृष्ठेषु सोपानवत् सुरक्षा अस्ति : $2',
+'namespaceprotected' => "भवान्/भवती '''$1''' नामाकाशे अन्तर्भूतेषु पृष्ठेषु परिवर्तनं कर्तुं न शक्नोति ।",
+'customcssprotected' => 'भवान्/भवती इदं CSS पृष्ठं सम्पादयितुं न शक्नोति । कारणं अन्यस्य योजकस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।',
+'customjsprotected' => 'भवान्/भवती इदं JavaScript पृष्ठं सम्पादयितुं न शक्नोति । कारणं अन्यस्य योजकस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।',
+'mycustomcssprotected' => 'भवान्/भवती इदं CSS पृष्ठं सम्पादयितुं न शक्नोति ।',
+'mycustomjsprotected' => 'भवान्/भवती इदं JavaScript पृष्ठं सम्पादयितुं न शक्नोति ।',
+'myprivateinfoprotected' => 'भवान्/भवती अत्र वैयक्तिकसूचनाः सम्पादयितुं न शक्नोति ।',
+'mypreferencesprotected' => 'भवान्/भवती स्वस्य इष्टतमानि सम्पादयितुं न शक्नोति ।',
+'ns-specialprotected' => 'विशिष्टानि पृष्ठानि सम्पादयितुं न शक्यन्ते ।',
+'titleprotected' => '"\'\'$2\'\'" इति कारणत्वात् एतत् शीर्षकं (विषयः) [[User:$1|$1]] इत्यस्मै संरक्षितमस्ति ।',
+'filereadonlyerror' => '"$1" सञ्चिकापरिवर्तितुं न शक्यते । "$2" कोषः अधुना  केवलं पठनयोग्यः (read only) अस्ति । येन प्रबन्धकेन एवं कृतं, तेन निम्नकारणं प्रदत्तम् "$3"',
+'invalidtitle-knownnamespace' => '"$2" नमावकाशेन "$3" पाठेन च युक्तम् अयोग्यं शीर्षकम्',
+'invalidtitle-unknownnamespace' => 'अयोग्येन नामवाकाशयुतेन, $1 सङ्ख्यया, "$2" पाठेन  युक्तम् अयोग्यं शीर्षकम्',
+'exception-nologin' => 'प्रवेशः न कृतः',
+'exception-nologin-text' => 'एतत् पृष्ठं सम्पादयितुं क्रियां कर्तुं वा [[Special:Userlogin|प्रविश्यताम्]] ।',
+'exception-nologin-text-manual' => 'एतत् पृष्ठं सम्पादयितुं क्रियां कर्तुं वा कृपया $1',
 
 # Virus scanner
-'virus-badscanner' => "à¤\85सà¥\81षà¥\8dठà¥\81 à¤\85भिविनà¥\8dयासà¤\83 : à¤\85à¤\9cà¥\8dà¤\9eातà¤\82 à¤µà¤¿à¤·à¤¾à¤£à¥\81-निरà¥\80à¤\95à¥\8dषितà¥\8dरमà¥\8d: ''$1''",
-'virus-scanfailed' => 'परà¥\80à¤\95à¥\8dषणà¤\82 à¤µà¤¿à¤«à¤²à¥\80भà¥\82तमà¥\8d (à¤\95à¥\82à¤\9fमà¥\8d $1)',
+'virus-badscanner' => "à¤\85यà¥\8bà¤\97à¥\8dयà¤\82 à¤µà¥\8dयवसà¥\8dथापनमà¥\8d : à¤\85à¤\9cà¥\8dà¤\9eातà¤\82 à¤µà¤¿à¤·à¤¾à¤£à¥\81à¤\82 (VIRUS) à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषà¤\95à¤\83: ''$1''",
+'virus-scanfailed' => 'निरà¥\80à¤\95à¥\8dषणà¤\82 à¤µà¤¿à¤«à¤²à¤¿à¤¤à¤®à¥\8d (विधà¥\8dयादà¥\87शà¤\83 (code) $1)',
 'virus-unknownscanner' => 'अज्ञातं विषाणुप्रतिकारकम्:',
 
 # Login and logout pages
-'logouttext' => "'''भवान् अधुना बहिरागतः ।'''
-
-भवान् {{SITENAME}} इत्येतत् अनामतया प्रयोक्तुं शक्नोति, अथवा भवान् तेनैव प्रयोक्तृनाम्ना, भिन्नप्रयोक्तृनाम्ना वा  <span class='plainlinks'>[$1 पुनः प्रवेष्टुं शक्नोति]</span>।
-इदानीमपि कानिचन पृष्ठानि पूर्ववदेव दृश्येरन् । अस्य वारणाय विचरकस्य स्मृतिसञ्चयः रिक्तीक्रियताम् ।",
-'welcomeuser' => 'स्वागतं, हे $1!',
-'welcomecreation-msg' => 'भवतः लेखा रचिताऽस्ति।
-स्वकीयानां [[Special:Preferences|{{SITENAME}} इष्टतमानां]]. निगदनं मा विस्मर्यताम्।',
+'logouttext' => "'''भवान्/भवती अधुना बहिः अस्ति ।'''
+भवान्/भवती {{SITENAME}} इत्येतत् अनामतया प्रयोक्तुं शक्नोति । अथवा तेनैव प्रयोक्तृनाम्ना, भिन्नप्रयोक्तृनाम्ना वा पुनः प्रवेष्टुं शक्नोति ।
+इदानीमपि कानिचन पृष्ठानि पूर्ववदेव दृश्येरन् । तत् वारयितुं गवाक्षस्य (browser) इतिहासः रिक्तीक्रियताम् ।",
+'welcomeuser' => 'स्वागतम्, $1!',
+'welcomecreation-msg' => 'भवता/भवत्या सदस्यता प्राप्ता ।
+स्वस्य [[Special:Preferences|{{SITENAME}} इष्टतमानि]] परिवर्तयितुं मा विस्मरतु ।',
 'yourname' => 'योजकनाम:',
-'userlogin-yourname' => 'प्रयोक्तुः नाम',
-'userlogin-yourname-ph' => 'स्वकीयं प्रयोक्तृनाम दीयताम्',
-'yourpassword' => 'कूटशब्दः',
-'userlogin-yourpassword-ph' => 'स्वकीयं कूटशब्दं दीयताम्',
-'createacct-yourpassword-ph' => 'कूटशब्दः प्रविश्यताम्',
-'yourpasswordagain' => 'कूटशब्दः पुनः लिख्यताम् ।',
-'createacct-yourpasswordagain-ph' => 'कूटशब्दः पुनः प्रविश्यताम्',
+'userlogin-yourname' => 'प्रयोक्तृनाम',
+'userlogin-yourname-ph' => 'स्वस्य प्रयोक्तृनाम दीयताम्',
+'createacct-another-username-ph' => 'प्रयोक्तृनाम दीयताम्',
+'yourpassword' => 'कूटशब्दः :',
+'userlogin-yourpassword' => 'कूटशब्दः',
+'userlogin-yourpassword-ph' => 'स्वस्य कूटशब्दः दीयताम्',
+'createacct-yourpassword-ph' => 'कूटशब्दः दीयताम्',
+'yourpasswordagain' => 'कूटशब्दः पुनः लिख्यताम् :',
+'createacct-yourpasswordagain' => 'कूटशब्दस्य पुष्टिं करोतु ।',
+'createacct-yourpasswordagain-ph' => 'कूटशब्दः पुनः दीयताम्',
 'remembermypassword' => 'अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमम् $1 {{PLURAL:$1|दिनम्|दिनानि}})',
 'userlogin-remembermypassword' => 'अहं प्रविष्टमेव तिष्ठेयम्',
-'yourdomainname' => 'भवतः प्रक्षेत्रम्:',
-'password-change-forbidden' => 'अस्यां विक्यां निकुञ्चं परिवर्तयितुं न शक्नोति ।',
-'externaldberror' => 'तत्र प्रमाणीकरण समंकाधारे त्रुटिर्जाता, अथवा भवान् स्वकीयां बाह्य-लेखां अद्यतनीकर्तुं अनुमतिं न धारयति।',
+'userlogin-signwithsecure' => 'संरक्षितः सम्पर्कः (https) उपयुज्यताम्',
+'yourdomainname' => 'भवतः प्रदेशः (domain) :',
+'password-change-forbidden' => 'अस्मिन् विकि-जालस्थाने भवान्/भवती कूटशब्दान् परिर्वतयितुं न शक्नोति ।',
+'externaldberror' => 'दत्तांशे प्रामाणिकताविषयकः (authentication database) दोषः  स्यात् । अथवा स्वस्य बाह्यसदस्यतायां  (external account) परिवर्तनं कर्तुम् अनुमतिः न भवेत् ।',
 'login' => 'प्रविश्यताम्',
 'nav-login-createaccount' => 'प्रविश्यताम् / सदस्यता प्राप्यताम्',
 'loginprompt' => '{{SITENAME}} इत्यत्र प्रवेष्टुं ज्ञापकानि (cookies)  समर्थीकरणीयानि ।',
@@ -682,58 +703,84 @@ $2',
 'logout' => 'निर्गमनम्',
 'userlogout' => 'निर्गमनम्',
 'notloggedin' => 'नैव प्रविष्टः',
-'userlogin-noaccount' => 'सदस्यता नास्ति किम्?',
+'userlogin-noaccount' => 'सदस्यता नास्ति किम् ?',
+'userlogin-joinproject' => '{{SITENAME}} सह योजनम्',
 'nologin' => 'सदस्यता नास्ति किम् ? $1',
 'nologinlink' => 'सदस्यता प्राप्यताम्',
 'createaccount' => 'सदस्यता प्राप्यताम्',
 'gotaccount' => 'पूर्वमेव योजकः अस्ति किम् ? $1',
 'gotaccountlink' => 'प्रविश्यताम्',
-'userlogin-resetlink' => 'प्रवेशविवरणानि विस्मृतानि किम् ?',
-'createacct-join' => 'स्वकीया सूचना अधस्तात् प्रवेश्यताम्।',
-'createaccountmail' => 'ईपत्रद्वारा',
-'createaccountreason' => 'कारणम्',
+'userlogin-resetlink' => 'स्वस्य प्रवेशविवरणानि विस्मृतानि किम् ?',
+'userlogin-resetpassword-link' => 'स्वस्य कूटशब्दः विस्मृतः किम् ?',
+'userlogin-helplink2' => 'प्रवेशविषयकं साहाय्यम्',
+'userlogin-loggedin' => 'भवाता/भवत्या पूर्वस्मादेव {{GENDER:$1|$1}} योजकत्वेन प्रवेशः प्राप्तः अस्ति । भिन्नयोजकत्वेन प्रवेष्टुं निम्नप्रपत्रं पूरयतु ।',
+'userlogin-createanother' => 'अन्यसदस्यता प्राप्यताम्',
+'createacct-join' => 'स्वविषये अधः लिख्यताम् ।',
+'createacct-another-join' => 'नवीनसदस्यतायाः विषये अधः लिख्यताम् ।',
+'createacct-emailrequired' => 'ई-पत्रसङ्केतः',
+'createacct-emailoptional' => 'ई-पत्रसङ्केतः (ऐच्छिकः)',
+'createacct-email-ph' => 'स्वस्य ई-पत्रसङ्केतं लिखतु',
+'createacct-another-email-ph' => 'ई-पत्रसङ्केतः लिख्यताम्',
+'createaccountmail' => 'अस्थायिनम् अशृङ्खलितं कूटशब्दम् उपयुज्य योग्याय ई-पत्रसङ्केताय प्रेश्यताम् ।',
+'createacct-realname' => 'वास्तविकं नाम (ऐच्छिकम्)',
+'createaccountreason' => 'कारणम् :',
 'createacct-reason' => 'कारणम्',
-'createacct-reason-ph' => 'भवान् अन्यां लेखां किमर्थं रचितुमिच्छसि?',
-'badretype' => 'भवता प्रदत्ते कूटशब्दे न खलु समाने स्तः। कृपया पुनः लिखतु।',
-'userexists' => 'भवतः प्रदत्तः प्रयोक्तृनाम अन्येन प्रयुज्यमानम् अस्ति। कृपया अन्यदेकं प्रयोक्तृनाम चिनोतु।',
-'loginerror' => 'प्रवेशने प्रमादः',
-'createaccounterror' => '$1 इति लेखां स्रष्टुं न अपारयत्',
-'nocookiesnew' => 'भवतः लेखा सृष्टाऽस्ति, परन्तु भवान् प्रविष्टो नासि।
-{{SITENAME}} इत्यनेन प्रवेशं कर्तुं कुकि इत्येते प्रयुज्यन्ते।
-भवतः पक्षे कुकि इत्येते असमर्थीकृतानि सन्ति।
-कृपया तानि समर्थानि करोतु, तथा स्वकीयेन सदस्यनाम्ना कूटशब्देन च प्रविशतु।',
-'nocookieslogin' => '{{SITENAME}} इत्यत्र प्रयोक्तृणां प्रवेशार्थं कुकि इत्येतेषां प्रयोगः क्रियते।
-भवता कुकि इत्येते असमर्थीकृतानि सन्ति।
-कृपया तानि समर्थीकरोतु पुनश्च प्रयततु।',
+'createacct-reason-ph' => 'भवतः/भवत्याः अन्यसदस्यतां प्राप्तुं किं प्रयोजनमस्ति ?',
+'createacct-captcha' => 'सुरक्षानिरीक्षणम्',
+'createacct-imgcaptcha-ph' => 'उपरि लिखिताः वर्णाः लिख्यताम्',
+'createacct-submit' => 'स्वसदस्यता प्राप्यताम्',
+'createacct-another-submit' => 'अन्यसदस्यता प्राप्यताम्',
+'createacct-benefit-heading' => '{{SITENAME}} इति भवत्सदृशैः जनैः रचितमस्ति ।',
+'createacct-benefit-body1' => '{{PLURAL:$1|सम्पादनम्|सम्पादनानि}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|पृष्ठम्|पृष्ठानि}}',
+'createacct-benefit-body3' => 'नवीन{{PLURAL:$1|योजकः|योजकाः}}',
+'badretype' => 'भवता/भवत्या लिखितौ कूटशब्दौ समानौ न स्तः ।',
+'userexists' => 'भवता/भवत्या ईप्सितं प्रयोक्तृनाम पूर्वस्मादेव विद्यते । 
+कृपया अपरं प्रयोक्तृनाम चिनोतु ।',
+'loginerror' => 'प्रवेशे दोषः',
+'createacct-error' => 'सदस्यताप्राप्तिकाले दोषः',
+'createaccounterror' => '$1 सदस्यता न प्राप्ता :',
+'nocookiesnew' => 'भवता/भवत्या सदस्यता प्राप्ता, परन्तु प्रवेशः न कृतः । {{SITENAME}} इत्यस्य कृते योजकज्ञापकम् (uses cookies) अनिवार्यम् अस्ति । 
+भवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।
+कृपया सा समर्थ्यताम्, ततश्च नवीनसदस्यतायाः प्रयोक्तृनाम्ना प्रविश्यताम् ।',
+'nocookieslogin' => '{{SITENAME}} इत्यत्र ज्ञापकेन (cookies) विना प्रवेशः न शक्यः । 
+भवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।
+कृपया सा समर्थ्यताम्, ततश्च पुनः प्रयासः क्रियताम् ।',
 'nocookiesfornew' => 'योजकसदस्यता न सिद्धा यतः स्रोतः प्रमाणीकृतं न जातम् । 
 भवता कुक्कीस् इत्येतत् समर्थीकृतानि किम् इति परिशील्य इदं पृष्ठं पुनरारोप्य प्रयतताम् ।',
-'noname' => 'भवता एकं मान्यं प्रयोक्तृ-नाम न प्रदत्तम्।',
-'loginsuccesstitle' => 'स्वागतम्‌। प्रवेशः सिद्धः।',
-'loginsuccess' => 'भवान् अधुना {{SITENAME}} इत्यत्र "$1" रूपेण प्रविष्टोऽस्ति।',
-'nosuchuser' => 'तत्र $1 इति नाम्ना न कोऽपि प्रयोक्ता विद्यते।
-प्रयोक्तृनाम्नि आंग्ललिपेः लघुभिः दीर्घैश्च अक्षरैः भिन्नता गण्यते।
-स्वकीयां वर्तनीं पुनरीक्षतां, अथवा [[Special:UserLogin/signup|नूतनसदस्यता प्राप्यताम्]]।',
-'nosuchusershort' => '"$1" इति नाम्ना न कोऽपि प्रयोक्ता विद्यते।
-स्वकीयां वर्तनीं पुनरीक्षताम्।',
-'nouserspecified' => 'भवता एकं प्रयोक्तृनाम अवश्यमेव दातव्यम्।',
-'login-userblocked' => 'एषः प्रयोक्ता प्रतिबन्धितः अस्ति। सत्रारम्भाय अनुमतिः नास्ति।',
-'wrongpassword' => 'भवता प्रदत्तः कूटशब्दः त्रुटिपूर्णः अस्ति। 
-कृपया पुनः लिख्यताम्।',
-'wrongpasswordempty' => 'लिखितः कूटशब्दः रिक्तः विद्यते।
-कृपया पुनः लिख्यताम्।',
-'passwordtooshort' => 'कूटशब्दः न्यूनातिन्यूनं {{PLURAL:$1| 1 अक्षरात्मकः|$1 अक्षरात्मकमः}} अवश्यमेव भवेत्।',
-'password-name-match' => 'भवतः कूटशब्दः भवतः प्रयोक्तृनामतः अवश्यम् भिन्नं  भवेत् ।',
-'password-login-forbidden' => 'अस्य प्रयोक्तृनाम्नः कूटशब्दस्य च प्रयोगः वर्जितोऽस्ति।',
+'noname' => 'भवता/भवत्या योग्यं प्रयोक्तृनाम न प्रदत्तम् ।',
+'loginsuccesstitle' => 'स्वागतं ! प्रवेशः सिद्धः ।',
+'loginsuccess' => 'भवता/भवत्या {{SITENAME}} इत्यत्र "$1"-योजकत्वेन प्रवेशः प्राप्तः ।',
+'nosuchuser' => "'''$1''' नाम्नः न कोऽपि योजकः विद्यते ।
+
+प्रयोक्तृनामानि पक्षानुगुणं (case sensitive) भवन्ति ।
+
+यत् टङ्कितं, तत् पश्यतु अथवा [[Special:UserLogin/signup|नूतनसदस्यता प्राप्यताम्]] ।",
+'nosuchusershort' => "'''$1''' नाम्नः न कोऽपि योजकः विद्यते ।
+
+यत् टङ्कितं, तत् पश्यतु ।",
+'nouserspecified' => 'भवता/भवत्या एकं योग्यं प्रयोक्तृनाम अवश्यमेव दातव्यम् ।',
+'login-userblocked' => 'एषः योजकः प्रतिबन्धितः । प्रविष्टुम् अनुमतिः नास्ति ।',
+'wrongpassword' => 'भवता/भवत्या लिखितः कूटशब्दः त्रुटियुक्तः । 
+कृपया पुनः लिख्यताम् ।',
+'wrongpasswordempty' => 'कूटशब्दपेटिकायां कूटशब्दः न लिखितः ।
+
+कृपया पुनः प्रयासः क्रियताम् ।',
+'passwordtooshort' => 'न्यूनातिन्यूनं {{PLURAL:$1| 1 अक्षरात्मकः|$1 अक्षरात्मकः}} कूटशब्दः भवेदेव ।',
+'password-name-match' => 'भवतः/भवत्याः प्रयोक्तृनाम, कूटशब्दः च समानः न भवेत् ।',
+'password-login-forbidden' => 'अस्य प्रयोक्तृनाम्नः कूटशब्दस्य च प्रयोगः वर्जितोऽस्ति ।',
 'mailmypassword' => 'कूटशब्दः परिवर्त्यताम्',
-'passwordremindertitle' => '{{SITENAME}} à¤\87तà¥\8dयà¥\87तदरà¥\8dथà¥\87 à¤¨à¥\82तनà¥\8d à¤\85सà¥\8dथायि à¤\95à¥\82à¤\9fशबà¥\8dदमà¥\8d।',
+'passwordremindertitle' => '{{SITENAME}} à¤\87तà¥\8dयसà¥\8dमà¥\88 à¤¨à¥\82तनà¤\83 à¤\85सà¥\8dथायà¥\80 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 ।',
 'passwordremindertext' => 'कश्चित्  (भवान् अपि स्यात्,  $1 ऐ. पि. सङ्केतात् ) {{SITENAME}} ($4) इत्यस्य कृते नूतनं कूटशब्दं प्रार्थितवान् । तात्कालिकः कूटशब्दः "$2" इति उपयोक्तुः कृते निर्मितः "$3" कृते प्रेषितश्च । यदि अयं भवतः  आशयः, भवान् प्रविश्य नूतनं कूटशब्दम् इदानीं चिनोतु । भवतः तात्कालिकः कूटशब्दः  {{PLURAL:$5|दिनम्|$5 दिनानि}} यावत् सक्रियः भवति । 
 
 अन्यः कश्चित् एतां प्रार्थनां कृतवान्, अथवा भवानेव पूर्वतनं कृटशब्दं स्मृतवान्, इदानीं तस्य परिवर्तनं न् इच्छति चेत् एतां सूचनाम् अनङ्गीकृत्य पूर्वतनस्य कूटशब्दस्य एव उपयोगं करोतु ।',
-'noemail' => '"$1" इति प्रयोक्तुः कृते न कोऽपि विद्युत्सन्देशसंकेतः पञ्जीकृतोऽस्ति।',
-'noemailcreate' => 'भवता एकः मान्यः विद्युत्सन्देशसंकेतः दातव्यः।',
-'passwordsent' => '"$1" इत्येतस्य कृते पञ्जीकृते विद्युत्सन्देशसंकेते एकः नूतनः कूटशब्दः प्रेषितोऽस्ति।
-कृपया तस्य सम्प्राप्तिपश्चात् पुनः प्रविशतु।',
-'blocked-mailpassword' => 'भवतः आइपी-संकेतः सम्पादनात् प्रतिबन्धितः अस्ति, अतश्च कूटशब्द-पुनरवाप्ति-सुविधायाः प्रयोगादपि वर्जितः, येन हि दुष्प्रयोगः न स्यात्।',
+'noemail' => '"$1" प्रयोक्तुः न कोऽपि ई-पत्रसङ्केतः पञ्जीकृतः अभवत् ।',
+'noemailcreate' => 'भवता/भवत्या मान्यः ई-पत्रसङ्केतः दातव्यः ।',
+'passwordsent' => '"$1" इत्यस्य पञ्जीकृताय ई-पत्रसङ्केताय नवीनः कूटशब्दः प्रेषितः अस्ति । 
+
+कृपया तस्य कूटशब्दस्य उपयोगेन पुनः प्रविश्यताम् ।',
+'blocked-mailpassword' => 'भवतः/भवत्याः अन्तर्जालसंविद् (IP) प्रतिबन्धितः अस्ति । 
+सम्पादनाय अनुमतिः नास्ति, अतः कूटशब्दस्य पुनःप्राप्तिः भवितुं नार्हति ।',
 'eauthentsent' => 'भवता प्रदत्ते विद्युत्पत्र-संकेते एकः परिपुष्टिरूपः विद्युत्सन्देशः प्रेषितोऽस्ति।
 अन्यः कश्चिद् विद्युत्सन्देशः प्रेषितो भवेत् इत्येतदर्थं भवता तत्सन्देशे प्रदत्ताः निर्देशाः पालितव्याः, येन हि सा विद्युत्सन्देशलेखा भवदीया एव इति सत्यापितो भवेत्।',
 'throttled-mailpassword' => 'पूर्वतनायां {{PLURAL:$1|होरस्य|$1 होराणां}} अवधौ भवदर्थं एकः कूटशब्द-पुनःस्मारकम् प्रेषितोऽस्ति।
@@ -752,7 +799,7 @@ $2',
 'emaildisabled' => 'स्थानमेतत् विद्युन्मनपत्रं न प्रेषयति ।',
 'accountcreated' => 'सदस्यता प्राप्ता',
 'accountcreatedtext' => '$1 इत्येतस्य सदस्यता प्राप्ता अस्ति।',
-'createaccount-title' => '{{SITENAME}} à¤\87तà¥\8dयà¥\87तदरà¥\8dथà¤\82 à¤²à¥\87à¤\96ासà¥\83à¤\9cनम्',
+'createaccount-title' => '{{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤¸à¤¦à¤¸à¥\8dयता à¤ªà¥\8dरापà¥\8dयताम्',
 'createaccount-text' => 'भवतः विद्युत्संदेशसंकेतार्थं केनचित् $2 इति जनेन {{SITENAME}} ($4) इत्यत्र  $3 इति कूटशब्दं दत्वा लेखा सृष्टाऽस्ति।
 भवता अधुना प्रवेशं कृत्वा कूटशब्दः परिवर्तितव्यः।
 
@@ -769,7 +816,10 @@ You may ignore this message, if this account was created in error.',
 'login-abort-generic' => 'भवतः प्रवेशप्रयासः विफलीभूतः - परित्यक्तः',
 'loginlanguagelabel' => 'भाषा : $1',
 'suspicious-userlogout' => 'भवतः सत्राद् बहिर्गमनस्य अनुरोधः अस्वीकृतोऽस्ति, यस्मादेतत् भग्नादेकस्मात् ब्राउज़र्तः अथवा स्वल्पसञ्चयि-प्रॉक्सितः प्रेषित आसीत्।',
+'pt-login' => 'प्रविश्यताम्',
 'pt-login-button' => 'प्रविश्यताम्',
+'pt-createaccount' => 'सदस्यता प्राप्यताम्',
+'pt-userlogout' => 'निर्गमनम्',
 
 # Email sending
 'php-mail-error-unknown' => 'पीएच्पी इत्येतस्य mail() फलने अज्ञाता काऽपि त्रुटिर्जाता।',
@@ -849,13 +899,13 @@ $2
 'image_tip' => 'अन्तर्निहिता सञ्चिका',
 'media_sample' => 'उदाहरणम्.ogg',
 'media_tip' => 'सञ्चिकासम्बन्धः',
-'sig_tip' => 'समयà¥\8bलà¥\8dलà¥\87न à¤¸à¤¹ à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¹à¤¸à¥\8dताà¤\95à¥\8dषरà¤\83',
+'sig_tip' => 'समयà¥\8bलà¥\8dलà¥\87à¤\96à¥\87न à¤¸à¤¹ à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¹à¤¸à¥\8dताà¤\95à¥\8dषरमà¥\8d',
 'hr_tip' => 'क्षैतिज-रेखा (न्यूनतया प्रयोक्तव्या)',
 
 # Edit pages
 'summary' => 'सारांशः:',
 'subject' => 'विषयः/शीर्षकम् :',
-'minoredit' => 'à¤\87दà¤\82 à¤²à¤\98à¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनम्',
+'minoredit' => 'à¤\87दà¤\82 à¤²à¤\98à¥\81 à¤¸à¤®à¥\8dपादनम्',
 'watchthis' => 'इदं पृष्ठं निरीक्षताम्',
 'savearticle' => 'पृष्ठं रक्ष्यताम्',
 'preview' => 'प्राग्दृश्यम्',
@@ -912,9 +962,8 @@ $2
 सत्रारम्भपश्चात् नूतनायाः अस्याः लेखायाः कूटशब्दः  '''[[Special:ChangePassword|कूटशब्दं परिवर्तताम्]]'' इति पृष्ठे परिवर्तितुं शक्यते।",
 'newarticle' => '(नूतनम्)',
 'newarticletext' => 'भवान्/भवती अनिर्मिते पृष्ठे अस्ति । 
-
-पृष्ठं स्रष्टुम् अधः प्रदत्तायां पेटिकायां टङ्कनं प्रारभतु (साहाय्यार्थं [$1 अत्र] नुदतु ।
-भवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) "बैक्" इति नुदतु ।',
+पृष्ठं स्रष्टुम् अधः प्रदत्तायां पेटिकायां टङ्कनं प्रारभतु (साहाय्यार्थं [$1 अत्र]) नुदतु ।
+भवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) Back नुदतु ।',
 'anontalkpagetext' => 'तस्य अनामकयोजकस्य, अथवा अनुपयोजकस्य च परिचर्चापुटम् येन एतावति काले स्वस्थनं  न निर्मितम् । 
 अतः तस्य अभिज्ञानार्थं ऐ.पि.सङ्गेतसङ्ख्या प्रयोजनीया । 
 सा समाना सङ्ख्याः अन्ययोजकैः अपि विभक्ता । यदि भवान् अनामकयोजकः, भवता असम्बद्धटीकाः श्रुताः, कृपया स्वस्थनं निर्मीय नामाभिलेखं करोतु ।  [[Special:UserLogin/signup|create an account]], [[Special:UserLogin|log in]] अन्यानामकयोजकैः सह सम्भूयमनभ्रमैः विमुक्तः भवतु ।',
@@ -924,7 +973,7 @@ $2
 'noarticletext-nopermission' => 'अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । 
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]
 [{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.',
-'missing-revision' => '{{PAGENAME}} इति नामाङ्कितपुटस्य #$1 इति पुनरावृत्तिः अत्र नाश्ति । 
+'missing-revision' => '{{FULLPAGENAME}} इति नामाङ्कितपुटस्य #$1 इति पुनरावृत्तिः अत्र नाश्ति । 
 पुटेन सह कालातीतानुबन्धकारणेन एतत् अभवत् ।
 विवरणम् अत्र दृश्यते ।[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
 'userpage-userdoesnotexist' => '"$1" इति प्रयोक्तृलेखा पञ्जीकृता नास्ति।
@@ -952,7 +1001,7 @@ $2
 'updated' => '(अद्यतनीकृतः)',
 'note' => "'''सूचना:'''",
 'previewnote' => "'''एतत् केवलं प्राग्दृश्यं वर्तते इति स्मरतु'''
-भवता/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤\8fतवातà¥\8d न रक्षितानि ।",
+भवता/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤\8fतवता न रक्षितानि ।",
 'continue-editing' => 'सम्पादनम् अनुवर्तताम्',
 'previewconflict' => 'अस्मिन् प्राग्दृश्ये दर्शितमस्ति यत् उपरिवर्ति पाठ क्षेत्रस्य पाठः रक्षणपश्चात् कीदृशः दृष्टिगोचरः भविष्यति।',
 'session_fail_preview' => "'''क्षम्यताम्! अस्माभिः भवतः सम्पादनस्य संसाधनं न कर्तुं शक्तम् यस्माद्धि सत्रस्य सूचनाः लुप्ताः।'''
@@ -999,14 +1048,15 @@ $2
 'templatesusedsection' => '{{PLURAL:$1|Template|Templates}} अस्मिन् विभागे उपयुक्तम् ।',
 'template-protected' => '(संरक्षितम्)',
 'template-semiprotected' => 'अर्धसंरक्षितम्',
-'hiddencategories' => 'à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 {{PLURAL:$1|1 à¤¨à¤¿à¤\97à¥\82ढà¥\87 à¤µà¤°à¥\8dà¤\97à¥\87 |$1 à¤¨à¤¿à¤\97à¥\82ढà¥\87षà¥\81 à¤µà¤°à¥\8dà¤\97à¥\87षà¥\81}} à¤\85नà¥\8dयतमà¤\82 à¤µà¤¿à¤¦à¥\8dयतà¥\87 :',
+'hiddencategories' => 'à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 {{PLURAL:$1|1 à¤¨à¤¿à¤\97à¥\82ढà¥\87 à¤µà¤°à¥\8dà¤\97à¥\87 |$1 à¤¨à¤¿à¤\97à¥\82ढà¥\87षà¥\81 à¤µà¤°à¥\8dà¤\97à¥\87षà¥\81}} à¤\85नà¥\8dतरà¥\8dभवति :',
 'nocreatetext' => '{{SITENAME}} नूतनपुटनिर्माणस्य क्षमता नियता । वर्तमानापुटानां सम्पादनार्थं निर्गच्छतु । अथवा [[Special:UserLogin|log in or create an account]].',
 'nocreate-loggedin' => 'नूतनपुटनिर्मार्थम् अनुमतिः नास्ति ।',
 'sectioneditnotsupported-title' => 'विभागसम्पादनं न पोषितम् ।',
 'sectioneditnotsupported-text' => 'अस्मिन् पुटे विभागसम्पादनण् न पोषितम् ।',
 'permissionserrors' => 'अनुज्ञा-विभ्रमाः',
 'permissionserrorstext' => 'भवान् तत् कर्तुं अनुज्ञां न धारयति {{PLURAL:$1|अधोऽङ्कितात् कारणात् |अधोऽङ्कितेभ्यः कारणेभ्यः:}}',
-'permissionserrorstext-withaction' => '$1 निम्नकारणत्वात्  $2 सम्पादनस्य अनुमतिः नास्ति ।',
+'permissionserrorstext-withaction' => '$1 निम्नकारणत्वात्  $2 सम्पादनस्य अनुमतिः नास्ति ।
+{{PLURAL:$1|कारणम्|कारणानि}}:',
 'recreate-moveddeleted-warn' => "'''पूर्वसूचना: पूर्वम् अपाकृतं पृष्टं भवता रच्यमानम् अस्ति ।'''
 अस्य पृष्ठस्य सम्पादनं करणात् प्राक् गभीरतया चिन्तनं करोतु ।
 अस्य पृष्ठस्य निर्माणं न्यायसङ्गतम् इति भवतः/भवत्याः मतमस्ति चेत् अत्र परिवर्तनं करोतु । सौकर्यार्थं पृष्ठ-अपाकरणस्य प्राक्तनसम्पादनस्य आवलिः अत्र वर्तते ।",
@@ -1039,8 +1089,8 @@ $2
 अत्र $2 संख्यातः  {{PLURAL:$2|न्यूनं आह्वानं|न्यूनानि आह्वानानि}} भवितव्यानि, सद्यः तत्र {{PLURAL:$1 $1 आह्वानं विद्यते|$1 आह्वानानि विद्यन्ते}}।",
 'expensive-parserfunction-category' => 'प्रभूतेभ्यः जटिलेभ्यः पार्सर्-फंक्शन्-आह्वानेभ्यः युक्तानि पृष्ठाणि।',
 'post-expand-template-inclusion-warning' => "'''पूर्वसूचना:''' फलकस्य आकारः बृहत् वर्तते । कानिचन फलकानि नान्तर्भविष्यन्ति ।",
-'post-expand-template-inclusion-category' => 'माहितà¥\80फलकस्य अपेक्षया पृष्ठं बृहत् वर्तते ।',
-'post-expand-template-argument-warning' => "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना''' à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\83षà¥\8dठà¥\87 à¤¸à¥\8dथितसà¥\8dय à¤«à¤²à¤\95सà¥\8dय à¤\8fà¤\95à¤\83 à¤µà¤¿à¤\95लà¥\8dपà¤\83 à¤¬à¤¹à¥\81 à¤¬à¥\83हतà¥\8d à¤­à¤µà¥\87तà¥\8d । तस्य विकल्पस्य अंशाः अपाकृताः ।",
+'post-expand-template-inclusion-category' => 'सà¥\82à¤\9aनाफलकस्य अपेक्षया पृष्ठं बृहत् वर्तते ।',
+'post-expand-template-argument-warning' => "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना''' à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\83षà¥\8dठà¥\87 à¤¸à¥\8dथितसà¥\8dय à¤«à¤²à¤\95सà¥\8dय à¤\8fà¤\95à¤\83 à¤µà¤¿à¤\95लà¥\8dपà¤\83 à¤¬à¤¹à¥\81 à¤¬à¥\83हतà¥\8d à¤µà¤°à¥\8dततà¥\87 । तस्य विकल्पस्य अंशाः अपाकृताः ।",
 'post-expand-template-argument-category' => 'येषु पृष्ठेषु फलके स्थिताः विकल्पाः न पूरिताः तेषां पृष्ठानाम् आवलिः',
 'parser-template-loop-warning' => 'बिम्बधर-पाशः प्राप्तः: [[$1]]',
 'parser-template-recursion-depth-warning' => 'बिम्बधर-पुनरावर्तनार्थं गहनतायाः सीमा अतिक्रान्ताऽस्ति ($1)',
@@ -1071,20 +1121,20 @@ $2
 'currentrev' => 'सद्यःकालीना आवृत्तिः',
 'currentrev-asof' => '$1 समयस्य संस्करणम्',
 'revisionasof' => '$1 इत्यस्य संस्करणं',
-'revision-info' => '$1 à¤ªà¤°à¥\8dयनà¥\8dतà¤\82 $2 à¤¦à¥\8dवारा à¤\9cातानि परिवर्तनानाम् आवलिः',
-'previousrevision' => 'â\86\90 à¤ªà¥\81रातनानि à¤¸à¤\82सà¥\8dà¤\95रणानि',
+'revision-info' => '$1 à¤ªà¤°à¥\8dयनà¥\8dतà¤\82 $2 à¤¦à¥\8dवारा à¤\9cातानाà¤\82 परिवर्तनानाम् आवलिः',
+'previousrevision' => 'â\86\90 à¤ªà¥\81रातनà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d',
 'nextrevision' => 'नूतनतरा आवृत्तिः →',
-'currentrevisionlink' => 'सदà¥\8dयà¤\83à¤\95ालà¥\80ना आवृत्तिः',
+'currentrevisionlink' => 'नà¥\82तनतमा आवृत्तिः',
 'cur' => 'वर्तमानः',
 'next' => 'आगामि',
 'last' => 'पूर्वतनम्',
 'page_first' => 'प्रथमम्',
 'page_last' => 'अन्तिमम्',
 'histlegend' => 'भेदस्य चयनम्: आवृत्तिभेदस्य दर्शनाय अग्रे प्रदत्ता रेडियोमञ्जूषा नुद्यताम्, एण्टर्-कुड्मलं नुद्यताम्, अधः दत्तं कुड्मलं वा नुद्यताम् । <br />
-à¤\87तिहासà¤\83: (सदà¥\8dयà¥\8bà¤\9cातमà¥\8d) = नूतनासु आवृत्तिषु भेदः, 
-(पà¥\82रà¥\8dवतनमà¥\8d) = à¤ªà¥\82रà¥\8dवतनासà¥\81 à¤\86वà¥\83तà¥\8dतिषà¥\81 à¤­à¥\87दà¤\83, (लà¤\98à¥\81) = à¤²à¤\98à¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनम्',
-'history-fieldset-title' => 'à¤\97वà¥\87षणसà¥\8dय (browser) इतिहासः',
-'history-show-deleted' => 'मातà¥\8dरम् अपाकृतम्',
+नà¥\82तनसà¤\82सà¥\8dà¤\95रणमà¥\8d = नूतनासु आवृत्तिषु भेदः, 
+(पà¥\82रà¥\8dवतनमà¥\8d) = à¤ªà¥\82रà¥\8dवतनासà¥\81 à¤\86वà¥\83तà¥\8dतिषà¥\81 à¤­à¥\87दà¤\83, (लà¤\98à¥\81) = à¤²à¤\98à¥\81 à¤¸à¤®à¥\8dपादनम्',
+'history-fieldset-title' => 'à¤\85नà¥\8dवà¥\87षणसà¥\8dय (browse) इतिहासः',
+'history-show-deleted' => 'à¤\95à¥\87वलम् अपाकृतम्',
 'histfirst' => 'पुरातनतमम्',
 'histlast' => 'नूतनतमम्',
 'historysize' => '({{PLURAL:$1|1 बैटम्|$1 बैटानि}})',
@@ -1126,8 +1176,7 @@ You can still [$1 view this revision]",
 'revdelete-no-file' => 'निर्दिष्टा सञ्चिका न विद्यते ।',
 'revdelete-show-file-confirm' => '$2 तः $3 मध्ये "<nowiki>$1</nowiki>" इति सञ्चिकायाः निरस्तं परिष्करणं भवान् नूनं द्रष्टुम् इच्छति ?',
 'revdelete-show-file-submit' => 'आम्',
-'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Selected revisions}} of [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Selected log event|Selected log events}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Selected log event|Selected log events}}:',
 'revdelete-confirm' => 'भवान् एतत् कार्यं करोति इति दढयतु । भवान् अस्य परिणामं जानाति । [[{{MediaWiki:Policy-url}}|the policy]] भवान् एतदनुसारं करोति ।',
 'revdelete-suppress-text' => 'अधोनिदेशितपरिस्थितिषु केवलं निग्रहः कार्यः । 
 * अवमाननीयाः विषयाः ।
@@ -1205,12 +1254,12 @@ You can still [$1 view this revision]",
 'mergelogpagetext' => 'अतिनूतनविलीनस्य आवली अधो दत्ता यस्य इतिहासः अन्यस्मिन् अस्ति ।',
 
 # Diffs
-'history-title' => '"$1" इत्यस्य आवर्तनेतिहासः :',
+'history-title' => '"$1" इत्यस्य आवर्तनेतिहासः',
 'difference-title' => '"$1" इत्यस्य अवतरणमध्ये व्यत्यासः ।',
 'difference-title-multipage' => '"$1" तथा "$2" पुटयोः मध्ये व्यत्यासः ।',
 'difference-multipage' => 'पुटेषु व्यत्यासः ।',
 'lineno' => 'पङ्क्तिः $1:',
-'compareselectedversions' => 'à¤\9aितानामà¥\8d à¤\86वà¥\83तà¥\8dतà¥\80नाà¤\82 à¤¤à¥\8bलनà¤\82 क्रियताम्',
+'compareselectedversions' => 'à¤\9aितानामà¥\8d à¤\86वà¥\83तà¥\8dतà¥\80नाà¤\82 à¤¤à¥\81लना क्रियताम्',
 'showhideselectedversions' => 'चितावतरणानि दर्शयतु/गोपयतु ।',
 'editundo' => 'पूर्ववत्',
 'diff-multi-manyusers' => '({{PLURAL:$2|योजकेन|$2 योजकैः}} कृता {{PLURAL:$1|मध्यमा आवृत्तिः|$1 मध्यमा आवृत्तयः}} न दर्शिताः ।)',
@@ -1224,25 +1273,25 @@ You can still [$1 view this revision]",
 'titlematches' => 'पुटशीर्षिकामेलाः ।',
 'textmatches' => 'पुटपाठस्य मेलाः',
 'notextmatches' => 'न कस्यापि पृष्ठस्य पाठः अस्य सममस्ति',
-'prevn' => 'पà¥\81रसà¥\8dतात् {{PLURAL:$1|$1}}',
-'nextn' => 'परसà¥\8dतात् {{PLURAL:$1|$1}}',
-'prevn-title' => 'पà¥\81रसà¥\8dतातà¥\8d {{PLURAL:$1|परिणामः|परिणामाः}}',
-'nextn-title' => 'परसà¥\8dतातà¥\8d {{PLURAL:$1|परिणामः|परिणामाः}}',
+'prevn' => 'पà¥\82रà¥\8dवतनम् {{PLURAL:$1|$1}}',
+'nextn' => 'à¤\85à¤\97à¥\8dरिमम् {{PLURAL:$1|$1}}',
+'prevn-title' => 'पà¥\82रà¥\8dवतन{{PLURAL:$1|परिणामः|परिणामाः}}',
+'nextn-title' => 'à¤\85à¤\97à¥\8dरिम{{PLURAL:$1|परिणामः|परिणामाः}}',
 'shown-title' => 'प्रत्येकस्मिन् पृष्ठे $1 {{PLURAL:$1|फलितम्|फलितानि}} दर्श्यताम्',
-'viewprevnext' => 'दरà¥\8dश्यताम् ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-exists' => "'''विकि-जालस्थानेऽस्मिन् \"[[:\$1]]\" नामकं पृष्ठं विद्यते । '''",
+'viewprevnext' => 'दà¥\83श्यताम् ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-exists' => '<strong>अस्मिन् विकि-जालस्थाने "[[:$1]]" नामकं पृष्ठं विद्यते ।</strong> {{PLURAL:$2|0=|अन्यपरिणामाः दृश्यन्ताम्}}',
 'searchmenu-new' => '<strong> अस्मिन् विकिजालस्थाने "[[:$1]]" इदं पृष्ठं सृज्यताम् ।
 </strong>
-{{PLURAL:$2|0=|तव अन्वेषणस्य परिणामोपि दृश्यताम् ।|तव अन्वेषणस्य परिणामाः अपि दृश्यन्ताम्}}',
-'searchprofile-articles' => 'à¤\86नà¥\8dतरà¥\8dविषà¤\95à¤\82 à¤ªà¥\83षà¥\8dठà¤\82',
+{{PLURAL:$2|0=|तव à¤\85नà¥\8dवà¥\87षणसà¥\8dय à¤ªà¤°à¤¿à¤£à¤¾à¤®à¥\8bऽपि à¤¦à¥\83शà¥\8dयतामà¥\8d à¥¤|तव à¤\85नà¥\8dवà¥\87षणसà¥\8dय à¤ªà¤°à¤¿à¤£à¤¾à¤®à¤¾à¤\83 à¤\85पि à¤¦à¥\83शà¥\8dयनà¥\8dतामà¥\8d}}',
+'searchprofile-articles' => 'विषयसहितानि à¤ªà¥\83षà¥\8dठानि',
 'searchprofile-project' => 'साहाय्यं, प्रकल्पपृष्ठानि च',
 'searchprofile-images' => 'माध्यमसमुच्चयः',
 'searchprofile-everything' => 'सर्वम्',
 'searchprofile-advanced' => 'प्रगतम्',
 'searchprofile-articles-tooltip' => '$1 स्थले अन्विष्यताम्',
 'searchprofile-project-tooltip' => '$1 स्थले अन्विष्यताम्',
-'searchprofile-images-tooltip' => 'सञ्चिका अन्विष्यताम्',
-'searchprofile-everything-tooltip' => '(चर्चापृष्ठानि अविहाय) सर्वत्र अन्विष्यताम्',
+'searchprofile-images-tooltip' => 'सञ्चिकाः अन्विष्यन्ताम्',
+'searchprofile-everything-tooltip' => 'सर्वत्र अन्विष्यताम् (चर्चापृष्ठानि अपि)',
 'searchprofile-advanced-tooltip' => 'नामाकाशेषु अन्विष्यताम्',
 'search-result-size' => '$1 ({{PLURAL:$2|1 शब्दः|$2 शब्दाः}})',
 'search-result-category-size' => '{{PLURAL:$1|1 योजकः|$1 योजकाः}} ({{PLURAL:$2|1 उपवर्गः|$2 उपवर्गाः}}, {{PLURAL:$3|1 सञ्चिका|$3 सञ्चिकाः}})',
@@ -1280,7 +1329,7 @@ You can still [$1 view this revision]",
 'skin-preview' => 'प्राग्दृश्यम्',
 'datedefault' => 'वरीयांसि नास्ति',
 'prefs-beta' => 'आवर्णलक्षणानि ।',
-'prefs-datetime' => 'दिनाà¤\82à¤\95 à¤¤à¤¥à¤¾ à¤¸à¤®à¤¯',
+'prefs-datetime' => 'दिनाà¤\99à¥\8dà¤\95à¤\83, à¤¸à¤®à¤¯à¤\83 à¤\9a',
 'prefs-labs' => 'प्रयोगशालालक्षणानि ।',
 'prefs-user-pages' => 'योजकपुटानि ।',
 'prefs-personal' => 'योजकः व्यक्तिरेखा',
@@ -1327,7 +1376,7 @@ You can still [$1 view this revision]",
 'timezoneregion-indian' => 'हिंद महासागर',
 'timezoneregion-pacific' => 'प्रशांत महासागर',
 'allowemail' => 'अन्योपयोजकानां विद्युन्मानसङ्केतं निष्कियं करोतु ।',
-'prefs-searchoptions' => 'अन्वेषणविकल्पाः ।',
+'prefs-searchoptions' => 'अन्वेषणविकल्पाः',
 'prefs-namespaces' => 'नामाकाशः :',
 'defaultns' => 'अन्यथा एतेषु नामाकाशेषु अन्विषतु ।',
 'default' => 'यदभावे',
@@ -1360,7 +1409,7 @@ You can still [$1 view this revision]",
 'email' => 'विद्युत्पत्रव्यवस्था',
 'prefs-help-realname' => 'निजनामधेयस्य उल्लेखः आवश्यकः नास्ति । 
 यदि ददाति तर्हि अस्य प्रयोगः भवतः योगदानार्थं भवते श्रेयं दातुम् उपयुक्तः भवति ।',
-'prefs-help-email' => 'à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85निवारà¥\8dयà¤\83 à¤¨à¤¾à¤¸à¥\8dति à¥¤ à¤\95िनà¥\8dतà¥\81 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤µà¤¿à¤¸à¥\8dमरà¥\8dयतà¥\87 à¤\9aà¥\87तà¥\8d à¤¤à¤¸à¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनाय à¤\85वश्यकः भवति ।',
+'prefs-help-email' => 'à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85निवारà¥\8dयà¤\83 à¤¨à¤¾à¤¸à¥\8dति à¥¤ à¤\95िनà¥\8dतà¥\81 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤µà¤¿à¤¸à¥\8dमरà¥\8dयतà¥\87 à¤\9aà¥\87तà¥\8d à¤¤à¤¸à¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनाय à¤\86वश्यकः भवति ।',
 'prefs-help-email-others' => 'योजकपृष्ठ-सम्भाषणपृष्ठयोः माध्यमेन,  ई-पत्रमाध्यमेन वा अन्ये योजकाः भवतः/भवत्याः सम्पर्कं कर्तुं शक्नुयुः ।
 सम्पर्केऽस्मिन् भवतः/भवत्याः ई-पत्रसङ्केतम् अन्ययोजकाः ज्ञातुं न प्रभवतन्ति ।',
 'prefs-help-email-required' => 'विद्युन्मानपत्रसङ्केतः आवश्यकः ।',
@@ -1538,15 +1587,15 @@ You can still [$1 view this revision]",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|परिवर्तनम्|परिवर्तनानि}}',
-'recentchanges' => 'सदà¥\8dयपरिवर्तनानि',
-'recentchanges-legend' => 'सद्योजातानां परिवर्तनानां विकल्पाः',
+'recentchanges' => 'नà¥\82तनपरिवर्तनानि',
+'recentchanges-legend' => 'सद्यो जातानां परिवर्तनानां विकल्पाः',
 'recentchanges-summary' => 'अस्मिन् विकि-प्रकल्पे सद्योजातानि परिवर्तनानि दृश्यन्ताम्',
-'recentchanges-feed-description' => 'अस्मिन् विकि-प्रकल्पे सद्योजातानि परिवर्तनानि दर्श्यन्ताम्',
+'recentchanges-feed-description' => 'अस्मिन् विकि-प्रकल्पे सद्यो जातानि परिवर्तनानि दर्श्यन्ताम्',
 'recentchanges-label-newpage' => 'अनेन सम्पादनेन नूतनपृष्ठस्य रचना अभूत् ।',
-'recentchanges-label-minor' => 'à¤\87दà¤\82 à¤²à¤\98à¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनम्',
+'recentchanges-label-minor' => 'à¤\87दà¤\82 à¤²à¤\98à¥\81 à¤¸à¤®à¥\8dपादनम्',
 'recentchanges-label-bot' => 'बोट्-द्वारा कृतं सम्पादनमेतत्',
 'recentchanges-label-unpatrolled' => 'एतावता अस्य सम्पादनस्य परिशीलिनं नाभूत् ।',
-'rcnotefrom' => '<strong>$2</strong> तः आरभ्य (<strong>$1</strong> पर्यन्तं) जातानि परिवर्तनानि अधः प्रदर्शिता ।',
+'rcnotefrom' => '<strong>$2</strong> तः आरभ्य (<strong>$1</strong> पर्यन्तं) जातानि परिवर्तनानि अधः प्रदर्शितानि ।',
 'rclistfrom' => '$1 पश्चात् जातानि नूतनानि परिवर्तनानि दृश्यन्ताम्',
 'rcshowhideminor' => '$1 लघुसम्पादनानि',
 'rcshowhidebots' => '$1 बोट् इत्येतानि',
@@ -1576,11 +1625,11 @@ You can still [$1 view this revision]",
 'recentchangeslinked-feed' => 'पृष्ठ-सम्बन्धितानि परिवर्तनानि',
 'recentchangeslinked-toolbox' => 'पृष्ठसम्बद्धानि परिवर्तनानि',
 'recentchangeslinked-title' => '"$1" इत्यस्मिन् जातानि परिवर्तनानि',
-'recentchangeslinked-summary' => "विशेषपृष्ठेषु वर्गान्तर्गतपृष्ठेषु वा सद्योजातानां परिवर्तनानाम् एषा आवलिः ।
+'recentchangeslinked-summary' => "विशेषपृष्ठेषु वर्गान्तर्गतपृष्ठेषु वा सद्यो जातानां परिवर्तनानाम् एषा आवलिः ।
 
-[[Special:Watchlist|भवतà¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणावलिà¤\83]] à¤\85तà¥\8dर à¤µà¤¿à¤¦à¥\8dयमानानि à¤ªà¥\83षà¥\8dठानि '''स्थूलाक्षरैः''' दर्शितानि।",
+[[Special:Watchlist|भवतà¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणावलà¥\8dयाà¤\82]] à¤µà¤¿à¤¦à¥\8dयमानानि à¤ªà¥\83षà¥\8dठानि à¤\85तà¥\8dर '''स्थूलाक्षरैः''' दर्शितानि।",
 'recentchangeslinked-page' => 'पृष्ठनाम:',
-'recentchangeslinked-to' => 'à¤\85सà¥\8dमिनà¥\8d à¤¸à¥\8dथानà¥\87 à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82बद्धानां पृष्ठानां परिवर्तनानि दर्श्यन्ताम्',
+'recentchangeslinked-to' => 'à¤\85सà¥\8dमिनà¥\8d à¤¸à¥\8dथानà¥\87 à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤®à¥\8dबद्धानां पृष्ठानां परिवर्तनानि दर्श्यन्ताम्',
 
 # Upload
 'upload' => 'सञ्चिका आरोप्यताम्',
@@ -1852,7 +1901,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'filehist-comment' => 'टिप्पणी',
 'filehist-missing' => 'सञ्चिका विनष्टा ।',
 'imagelinks' => 'सञ्चिकायाः उपयोगः',
-'linkstoimage' => '{{PLURAL:$1|अधो निर्दिष्टपृष्ठस्य परिसन्धयः|$1 अधो निर्दिष्टपृष्ठानां परिसन्धिः} अत्र {{PLURAL:$1|संलग्नाः सन्ति|सल्लग्ना अस्ति}} :',
+'linkstoimage' => '{{PLURAL:$1|अधो निर्दिष्टपृष्ठस्य परिसन्धयः संलग्नाः सन्ति|$1 अधो निर्दिष्टपृष्ठानां परिसन्धिः संलग्ना अस्ति}}:',
 'linkstoimage-more' => '{{PLURAL:$1|$1}} तः अधिकपुटानि अस्यां सञ्चिकायां योज्यन्ते । 
 अधोनिदेशितसूची सञ्चिकाभिः योजनीयपुटानि पश्यति ।{{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठ}} 
 [[Special:WhatLinksHere/$2|पूर्णसूची]] अपि लभ्यते ।',
@@ -1934,7 +1983,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'randomredirect-nopages' => '$1नामस्थाने चालनानि न सन्ति ।',
 
 # Statistics
-'statistics' => 'साङ्ख्यकी',
+'statistics' => 'साà¤\99à¥\8dà¤\96à¥\8dयिà¤\95à¥\80',
 'statistics-header-pages' => 'पुटसाङ्ख्यिकाः ।',
 'statistics-header-edits' => 'सङ्ख्यिकाः सम्पादयतु ।',
 'statistics-header-views' => 'साङ्ख्यिकाः अवलोकयतु ।',
@@ -2032,7 +2081,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'newpages' => 'नवीनपृष्ठानि',
 'newpages-username' => 'योजकनामन्:',
 'ancientpages' => 'प्राचीनतमानि पृष्ठानि',
-'move' => 'à¤\9aाल्यताम्',
+'move' => 'शà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dत्यताम्',
 'movethispage' => 'इदं पृष्ठं चाल्यताम्',
 'unusedimagestext' => 'अधो दत्तसञ्चिकाः सन्ति किन्तु कस्मिंश्चिदपि पुटे न न्यस्ताः ।',
 'unusedcategoriestext' => 'निम्नलिखितवर्गाः सन्ति तथापि अन्यपुटं वर्गः वा न उपयुङ्क्ते ।',
@@ -2270,7 +2319,7 @@ Feedback and further assistance:
 'historywarning' => "' पूर्वसूचना ''' भवता अपमर्जनसिद्धपुटे बहुशः  $1 इतिहासयुक्तः अस्ति ।{{PLURAL:$1|revision|revisions}}:",
 'confirmdeletetext' => 'भवान् एकं पृष्ठं तस्य अखिलेन इतिहासेन सहितं अपाकर्तुं प्रवृत्तोऽस्ति। कृपया सुपुष्टीकरोतु यत् भवतः एतदेव आशयः, यद् भवता अस्य परिणामाः सुविज्ञाताः सन्ति तथा च भवता क्रियैषा [[{{MediaWiki:Policy-url}}| यथानीति]] सम्पाद्यते।',
 'actioncomplete' => 'कार्यं सम्पन्नम्',
-'actionfailed' => 'à¤\95ारà¥\8dयà¤\82 à¤°à¤¿à¤·à¥\8dà¤\9fà¤\82 (failed)',
+'actionfailed' => 'à¤\95ारà¥\8dयà¤\82 à¤°à¤¿à¤·à¥\8dà¤\9fमà¥\8d (failed)',
 'deletedtext' => '"$1" इत्येतद् अपाकृतमस्ति।
 सद्यःकृतानां अपाकरणानाम् अभिलेखः $2 इत्यस्मिन् पश्यतु।',
 'dellogpage' => 'अपाकरणानाम् आवलिः',
@@ -2432,11 +2481,11 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 'tooltip-invert' => 'चितनामस्थाने परिवर्तनं गोपयितुं मञ्जूषाम् अर्गलयतु ।',
 'namespace_association' => 'सम्बद्धं नामस्थानम् ।',
 'tooltip-namespace_association' => 'चितनामस्थानेन सह सम्बद्धं विषयनामस्थानम् अथवा सम्भाषणम् अपि उपादातुम् इमां मञ्जूषाम् अर्गलयतु ।',
-'blanknamespace' => '(मà¥\81à¤\96à¥\8dयà¤\83)',
+'blanknamespace' => '(मà¥\81à¤\96à¥\8dयमà¥\8d)',
 
 # Contributions
 'contributions' => '{{GENDER:$1|प्रयोक्तॄणां}} योगदानानि',
-'contributions-title' => '$1 à¤\95à¥\83तà¥\87 à¤¯à¥\8bà¤\97दानà¤\82',
+'contributions-title' => '$1 à¤\95à¥\83तà¥\87 à¤¯à¥\8bà¤\9cà¤\95सà¥\8dय à¤¯à¥\8bà¤\97दानानि',
 'mycontris' => 'योगदानानि',
 'contribsub2' => '($2) कृते {{GENDER:$3|$1}}',
 'nocontribs' => 'एतादृशयोग्यताभिः समं परिवर्तनानि न दृष्टानि ।',
@@ -2459,25 +2508,25 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 नूतनतमा अवरोधाभिलेख-प्रविष्टिः सन्दर्भार्थम् अधस्तात् प्रदत्ताऽस्ति:',
 'sp-contributions-search' => 'योगदानानि अन्विष्यन्ताम्',
 'sp-contributions-username' => 'अन्तर्जालसंविद् (I P address) योजकनाम वा :',
-'sp-contributions-toponly' => 'समà¥\8dपादनानाà¤\82 à¤\95à¥\87वलà¤\82 à¤¨à¥\82तनातमा आवलिः दृश्यताम्',
+'sp-contributions-toponly' => 'समà¥\8dपादनानाà¤\82 à¤¨à¥\82तनतमा आवलिः दृश्यताम्',
 'sp-contributions-submit' => 'अन्विष्यताम्',
 
 # What links here
 'whatlinkshere' => 'अनेन सह सम्बद्धाः',
 'whatlinkshere-title' => '"$1" सम्बद्धानि पृष्ठानि',
 'whatlinkshere-page' => 'पृष्ठम्:',
-'linkshere' => "'''[[:$1]]''' इत्यनेन सह अधोलिखितानां पृष्ठानां परिसन्धिं करोतु:",
+'linkshere' => "'''[[:$1]]''' इत्यनेन सह अधो लिखितानां पृष्ठानां परिसन्धिं करोतु:",
 'nolinkshere' => "'''[[:$1]]''' इत्यनेन सह न किमपि पृष्ठं परिसन्धितम्",
 'nolinkshere-ns' => "चितनामस्थानात्  '''[[:$1]]''' इत्येनं योजनयोग्यं पुटं नास्ति  ।",
 'isredirect' => 'अनुप्रेषण-पृष्ठम्',
 'istemplate' => 'अन्यलेखभागः (transclusion)',
 'isimage' => 'सञ्चिकासम्बन्धः',
 'whatlinkshere-prev' => '{{PLURAL:$1|पुरस्तात् (previous) $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|परसà¥\8dतात् $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|à¤\85à¤\97à¥\8dरिमम् $1}}',
 'whatlinkshere-links' => '← परिसन्धयः',
-'whatlinkshere-hideredirs' => '$1 पुनर्निर्दिष्टानि',
-'whatlinkshere-hidetrans' => '$1 अन्यलेखभागः (transclusions)',
-'whatlinkshere-hidelinks' => '$1 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधिः',
+'whatlinkshere-hideredirs' => '$1 पुनर्निर्दिष्टानि पृष्ठानि',
+'whatlinkshere-hidetrans' => '$1 à¤\85नà¥\8dयलà¥\87à¤\96भाà¤\97ाà¤\83 (transclusions)',
+'whatlinkshere-hidelinks' => '$1 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधयः',
 'whatlinkshere-hideimages' => '$1 चित्रपरिसन्धिः',
 'whatlinkshere-filters' => 'शोधनी',
 
@@ -2558,7 +2607,7 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 'blocklink' => 'अवरुद्ध्यताम्',
 'unblocklink' => 'अवरोधः निरस्त्यताम्',
 'change-blocklink' => 'अवरोधः परिवर्त्यताम्',
-'contribslink' => 'यà¥\8bà¤\97दानमà¥\8d',
+'contribslink' => 'यà¥\8bà¤\97दानानि',
 'emaillink' => 'विद्युन्मानपत्रं प्रेषयतु ।',
 'autoblocker' => 'भवतः ऐपि सङ्केतः स्वयम् अवरुद्धः यः सद्यः काले एव [[User:$1|$1]]" इत्यनेन उपयुक्तः । 
 $1 इत्यस्य अवरोधस्य कारणं तु "$2" अस्ति ।',
@@ -2836,34 +2885,34 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'tooltip-pt-anontalk' => 'एतस्मात् ऐपिसङ्केतात् सम्पादनस्य परिचर्चा ।',
 'tooltip-pt-preferences' => 'भवतः/भवत्याः इष्टतमानि',
 'tooltip-pt-watchlist' => 'भवतः/भवत्याः निरीक्षासूच्यां विद्यमानानां पृष्ठानाम् आवलिः',
-'tooltip-pt-mycontris' => 'भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\97दानसà¥\8dय आवलिः',
+'tooltip-pt-mycontris' => 'भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\97दानानामà¥\8d आवलिः',
 'tooltip-pt-login' => 'सम्प्रवेशाय प्रोत्सहामहे । परन्तु सम्प्रवेशः ऐच्छिकः ।',
 'tooltip-pt-logout' => 'निर्गमनम्',
-'tooltip-ca-talk' => 'पà¥\83षà¥\8dठाऽनà¥\8dतरà¥\8dà¤\97ताय à¤µà¤¿à¤·à¤¯à¤¾à¤¯ चर्चा',
+'tooltip-ca-talk' => 'विषयसहितानाà¤\82 à¤ªà¥\83षà¥\8dठानाà¤\82 चर्चा',
 'tooltip-ca-edit' => 'इदं पृष्ठं सम्पादयितुं शक्यते । रक्षणात्पूर्वं कृपया प्राग्दृश्यं दृश्यताम् ।',
 'tooltip-ca-addsection' => 'नूतनविभागः आरभ्यताम्',
-'tooltip-ca-viewsource' => 'à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤\82रà¤\95à¥\8dषितà¤\82 à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ à¤\85सà¥\8dय à¤¸à¥\8dरà¥\8bतà¤\82 द्रष्टुं शक्यते ।',
+'tooltip-ca-viewsource' => 'à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤\82रà¤\95à¥\8dषितà¤\82 à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ à¤\85सà¥\8dय à¤¸à¥\8dरà¥\8bतà¤\83 द्रष्टुं शक्यते ।',
 'tooltip-ca-history' => 'अस्य पृष्ठस्य पुरातनाऽऽवृत्तिः',
 'tooltip-ca-protect' => 'इदं पृष्ठं संरक्ष्यताम्',
 'tooltip-ca-unprotect' => 'अस्य पुटास्य सुरक्षां परिवर्तयतु ।',
 'tooltip-ca-delete' => 'इदं पृष्ठम् अपाक्रियताम्',
 'tooltip-ca-undelete' => 'अस्य पुटस्य अपमर्जनात् पूर्वम् अस्य सम्पादनानि पुनस्थापयतु ।',
-'tooltip-ca-move' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¾à¤® परिवर्त्यताम्',
+'tooltip-ca-move' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¶à¥\80रà¥\8dषà¤\95à¤\82 परिवर्त्यताम्',
 'tooltip-ca-watch' => 'इदं पृष्ठं भवतः/भवत्याः अवेक्षणावल्यां योज्यताम्',
 'tooltip-ca-unwatch' => 'भवतः/भवत्याः अवेक्षणसूच्याः इदं पृष्ठं निष्कास्यताम्',
 'tooltip-search' => '{{SITENAME}} अन्विष्यताम्',
 'tooltip-search-go' => 'समानशिरोनामयुक्तं पृष्ठं विद्यते चेत् तत्र गम्यताम्',
-'tooltip-search-fulltext' => 'à¤\8fनà¤\82 à¤µà¤¾à¤\95à¥\8dयाà¤\82शà¤\82 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 अन्विष्यताम्',
+'tooltip-search-fulltext' => 'पà¥\83षà¥\8dठà¥\87षà¥\81 à¤\8fषà¤\83 à¤µà¤¾à¤\95à¥\8dयाà¤\82शà¤\83 अन्विष्यताम्',
 'tooltip-p-logo' => 'मुख्यपृष्ठं गम्यताम्',
 'tooltip-n-mainpage' => 'मुख्यपृष्ठं गम्यताम्',
 'tooltip-n-mainpage-description' => 'मुख्यपृष्ठं गम्यताम्',
-'tooltip-n-portal' => 'तà¥\8dवया à¤ªà¥\8dरà¤\95लà¥\8dपविषयà¥\87 à¤\95िà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87, à¤\95à¥\81तà¤\83 साहाय्यं प्राप्तव्यम्',
+'tooltip-n-portal' => 'तà¥\8dवया à¤ªà¥\8dरà¤\95लà¥\8dपविषयà¥\87 à¤\95िà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87, à¤\95à¥\81थà¤\82 साहाय्यं प्राप्तव्यम्',
 'tooltip-n-currentevents' => 'वर्तमानप्रसङ्गानां पृष्ठभूमिका प्राप्यताम्',
-'tooltip-n-recentchanges' => 'सदà¥\8dयपरिवर्तनानाम् आवलिः',
+'tooltip-n-recentchanges' => 'नवà¥\80नपरिवर्तनानाम् आवलिः',
 'tooltip-n-randompage' => 'अशृङ्खलं (random) पृष्ठं गम्यताम्',
-'tooltip-n-help' => 'à¤\85नà¥\8dवà¥\87षणसà¥\8dथानम्',
+'tooltip-n-help' => 'à¤\85नà¥\8dवà¥\87षणसà¥\8dथलम्',
 'tooltip-t-whatlinkshere' => 'अत्र सम्बद्धानां परिसन्धितानां विकि-पृष्ठानाम् आवलिः',
-'tooltip-t-recentchangeslinked' => 'à¤\8fततà¥\8dपà¥\83षà¥\8dठसमà¥\8dबदà¥\8dधà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤¸à¤¦à¥\8dयà¤\9cातानि परिवर्तनानि',
+'tooltip-t-recentchangeslinked' => 'à¤\8fततà¥\8dपà¥\83षà¥\8dठसमà¥\8dबदà¥\8dधà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤\9cातानि à¤¨à¤µà¥\80नपरिवर्तनानि',
 'tooltip-feed-rss' => 'अस्मै पृष्ठाय आर-एस-एस-पूरणम्',
 'tooltip-feed-atom' => 'अस्मै पृष्ठाय अणुपूरणम्',
 'tooltip-t-contributions' => 'अस्य योजकस्य योगदानानाम् आवलिः',
@@ -2872,20 +2921,20 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'tooltip-t-specialpages' => 'सर्वेषां विशिष्टपृष्ठानाम् आवलिः',
 'tooltip-t-print' => 'अस्य पृष्ठस्य मुद्रणयोग्या आवृत्तिः',
 'tooltip-t-permalink' => 'पृष्ठस्यास्य स्थायिपरिसन्धिः',
-'tooltip-ca-nstab-main' => 'à¤\86नà¥\8dतरà¥\8dविषयà¤\95ं पृष्ठं पश्यतु',
+'tooltip-ca-nstab-main' => 'विषययà¥\81à¤\95à¥\8dतं पृष्ठं पश्यतु',
 'tooltip-ca-nstab-user' => 'योजकपृष्ठं दृश्यताम्',
 'tooltip-ca-nstab-media' => 'माध्यमपुटम् अवलोकयतु ।',
-'tooltip-ca-nstab-special' => 'à¤\87दमà¥\87à¤\95à¤\82 à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fà¤\82 à¤ªà¥\83षà¥\8dठमà¥\8d, भवान्/भवती इदं पृष्ठं सम्पादयितुं नार्हति ।',
+'tooltip-ca-nstab-special' => 'à¤\87दमà¥\87à¤\95à¤\82 à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fà¤\82 à¤ªà¥\83षà¥\8dठà¤\82, भवान्/भवती इदं पृष्ठं सम्पादयितुं नार्हति ।',
 'tooltip-ca-nstab-project' => 'प्रकल्पपृष्ठं दृश्यताम्',
 'tooltip-ca-nstab-image' => 'सञ्चिकापृष्ठं दृश्यताम्',
 'tooltip-ca-nstab-mediawiki' => 'तन्त्रसन्देशान् अवलोकयतु ।',
 'tooltip-ca-nstab-template' => 'फलकं दृश्यताम्',
 'tooltip-ca-nstab-help' => 'साहाय्यपुटम् अवलोकयतु ।',
 'tooltip-ca-nstab-category' => 'वर्गाणां पृष्ठं दृश्यताम्',
-'tooltip-minoredit' => 'लà¤\98à¥\81परिवरà¥\8dतनतà¥\8dवà¥\87न à¤\87दà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनम् अङ्क्यताम्',
+'tooltip-minoredit' => 'लà¤\98à¥\81समà¥\8dपादनतà¥\8dवà¥\87न à¤\87दà¤\82 à¤¸à¤®à¥\8dपादनम् अङ्क्यताम्',
 'tooltip-save' => 'परिवर्तनानि रक्ष्यन्ताम्',
 'tooltip-preview' => 'भवता/भवत्या कृतानां परिवर्तनानां प्राग्दृश्यं दृश्यताम्, रक्षणात्पूर्वं कृपया इदम् उपयुज्यताम्।',
-'tooltip-diff' => 'भवता/भवतà¥\8dया à¤\85तà¥\8dर à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि द्रष्टुं शक्यते',
+'tooltip-diff' => 'भवता/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤\85तà¥\8dर द्रष्टुं शक्यते',
 'tooltip-compareselectedversions' => 'पृष्ठस्य द्वयोः चितयोः आवृत्त्योः भेदः दृश्यताम्',
 'tooltip-watch' => 'इदं पृष्ठं भवतः/भवत्याः अवेक्षणावल्यां योज्यताम्',
 'tooltip-watchlistedit-normal-submit' => 'शीर्षकानि अपनयतु ।',
@@ -2893,9 +2942,9 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'tooltip-recreate' => 'एतत्पुटं पूर्वमेव अपमर्जितः अतः पुन सृजतु ।',
 'tooltip-upload' => 'उत्तारणम् आरभताम्',
 'tooltip-rollback' => '"प्रत्याहरणम् (roll back)" इत्येतत् अन्तिमसम्पादकस्य अन्तिमयोगदानं निराकरोति ।',
-'tooltip-undo' => '"पूर्ववत्" इति अन्तिमसम्पादनम् अपाकरोति, सम्पादनप्रारूपं प्राग्दृश्यरूपेण उद्घाटयति, नवीनसम्पादनान्तरं सम्पादनपृष्ठं प्राग्दृश्यत्वेन प्रदर्शयति च । 
+'tooltip-undo' => '\'"पूर्ववत्"\' इति अन्तिमसम्पादनम् अपाकरोति, सम्पादनप्रारूपं प्राग्दृश्यरूपेण उद्घाटयति, नवीनसम्पादनानन्तरं सम्पादनपृष्ठं प्राग्दृश्यत्वेन प्रदर्शयति च । 
 
-à¤\85सà¥\8dय à¤¸à¤¾à¤°à¤¾à¤\82शà¥\87 à¤\85पाà¤\95रणसà¥\8dय à¤\95ारणमपि à¤²à¥\87खितुं शक्यते ।',
+à¤\85सà¥\8dय à¤¸à¤¾à¤°à¤¾à¤\82शà¥\87 à¤\85पाà¤\95रणसà¥\8dय à¤\95ारणमपि à¤²à¤¿खितुं शक्यते ।',
 'tooltip-preferences-save' => 'आद्यताः रक्षतु ।',
 'tooltip-summary' => 'सङ्क्षिप्तसारांशः योज्यताम्',
 
@@ -3053,13 +3102,13 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 # Bad image list
 'bad_image_list' => 'अत्र प्रारूपं एवं भवेत् -
 
-à¤\95à¥\87वलमà¥\8d à¤\86वलà¥\8dयनà¥\8dतरà¥\8dà¤\97ताà¤\83 à¤µà¤¿à¤·à¤¯à¤¾à¤\83 (* à¤\87ति à¤\9aिनà¥\8dहात् आरभमाणाः पङ्क्तयः) आकलिताः ।
+à¤\95à¥\87वलमà¥\8d à¤\86वलà¥\8dयनà¥\8dतरà¥\8dà¤\97ताà¤\83 à¤µà¤¿à¤·à¤¯à¤¾à¤\83 (* à¤\87ति à¤\9aिहà¥\8dनात् आरभमाणाः पङ्क्तयः) आकलिताः ।
 
 पङ्क्त्यां विद्यमाना प्रथमा परिसन्धिः (link) दोषपूर्णया सञ्चिकया सह परिसन्धिता (linked) स्यादेव । तस्यामेव पङ्क्तौ उत्तरोत्तरं विद्यमानाः परिसन्धयः अपवादिताः ज्ञेयाः, अर्थात् अत्र तेषां पृष्ठानाम् आवलिरेव भविष्यति, येषु एषा सञ्चिका विद्यते ।',
 
 # Metadata
 'metadata' => 'प्रदत्तांशः (दत्तांशविषयकदत्तांशः अयम्)',
-'metadata-help' => 'à¤\85नà¥\87न à¤¸à¤¹ à¤µà¤¿à¤¸à¥\8dतà¥\83तमाहितà¥\80 सल्लग्ना अस्ति, प्रतिबिम्बग्राहकेन (scanner) अङ्कीयछायाचित्रग्राहकेन (digital camera ) वा अस्याः सञ्चिकायाः रचना जाता स्यात् । 
+'metadata-help' => 'à¤\85नà¥\87न à¤¸à¤¹ à¤µà¤¿à¤¸à¥\8dतà¥\83तसà¥\82à¤\9aना सल्लग्ना अस्ति, प्रतिबिम्बग्राहकेन (scanner) अङ्कीयछायाचित्रग्राहकेन (digital camera ) वा अस्याः सञ्चिकायाः रचना जाता स्यात् । 
 
 एषा सञ्चिका यदि मूलावस्थात् परिवर्त्यते, तर्हि अत्रस्थानि कानिचित् विवरणानि परिवर्तितसञ्चिकायां पूर्णतया न दृश्यन्ते ।',
 'metadata-expand' => 'विस्तारितानि विवरणानि दर्शयतु',
@@ -3617,14 +3666,14 @@ $5
 # Watchlist editing tools
 'watchlisttools-view' => 'योग्यपरिवर्तनानि दृश्यन्ताम्',
 'watchlisttools-edit' => 'अवेक्षणाऽऽवलिः दृश्यतां, सम्पाद्यतां च',
-'watchlisttools-raw' => 'à¤\85पà¤\95à¥\8dवामà¥\8d à¤\85वलà¥\8bà¤\95नावलà¥\80à¤\82 à¤¸à¤®à¥\8dपादयतà¥\81 à¥¤',
+'watchlisttools-raw' => 'विवरणरहिता à¤\85वलà¥\8bà¤\95नावलिà¤\83 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d',
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|अम्भाषणम्]])',
 
 # Core parser functions
 'unknown_extension_tag' => 'अज्ञातं वर्तमानसूत्रम् $1',
-'duplicate-defaultsort' => '\'\'\'पà¥\82रà¥\8dवसà¥\82à¤\9aना\'\'\' "$1" à¤\87ति à¤ªà¥\81रातनà¤\82 à¤®à¥\82लà¤\95à¥\8dरमाà¤\99à¥\8dà¤\95नà¤\82 à¤\95à¥\81डà¥\8dमलà¤\82 à¤µà¤¿à¤¹à¤¾à¤¯  "$2" à¤\87ति à¤¨à¤µà¥\80नà¤\82 à¤®à¥\82लà¤\95à¥\8dरमाà¤\99à¥\8dà¤\95नà¤\95à¥\81णà¥\8dडलतà¥\8dवà¥\87न à¤¸à¥\8dवयमà¥\87व à¤¨à¤¯à¤¤à¤¿ à¤\8fततà¥\8d à¥¤',
+'duplicate-defaultsort' => '\'\'\'पूर्वसूचना\'\'\' "$1" इति पुरातनं मूलक्रमाङ्कनकुड्मलं विहाय  "$2" इति नवीनं मूलक्रमाङ्कनकुण्डलत्वेन स्वयमेव नयति एतत् ।',
 
 # Special:Version
 'version' => 'आवृत्तिः',
@@ -3693,10 +3742,10 @@ $5
 # External image whitelist
 'external_image_whitelist' => '# एषा पङ्क्तिः न परिवर्त्यताम् <pre>
 # अत्र केवलं सामान्यचिह्नानाम् उपयोगः क्रियताम् (यथा // इत्यनयोः मध्ये स्थापनीयः भागः)
-# à¤\87तà¥\8dयसà¥\8dय à¤¬à¤¹à¤¿à¤¸à¥\8dतातà¥\8d à¤\86à¤\97तानाà¤\82 à¤\9aितà¥\8dराणाà¤\82 à¤¸à¤¾à¤°à¥\8dवसà¤\99à¥\8dà¤\95à¥\87तà¥\88à¤\83 (U R L) à¤¸à¤¹ तुलना भवति
+# à¤¬à¤¹à¤¿à¤¸à¥\8dतातà¥\8d à¤\86à¤\97तानाà¤\82 à¤\9aितà¥\8dराणाà¤\82 à¤¸à¤¾à¤°à¥\8dवसà¤\99à¥\8dà¤\95à¥\87तà¥\88à¤\83 (U R L) à¤¸à¤¹ à¤\8fतà¥\87षाà¤\82 तुलना भवति
 # यत् चित्रम् अनुकूलं भवति तत् योज्यते, अन्यथा तस्य चित्रस्य परिसन्धिः योज्यते । 
-# à¤ªà¤\99à¥\8dà¤\95तयà¤\83 # à¤\87तसà¥\8dमातà¥\8d à¤\86रभनà¥\8dतà¥\87 à¥¤ à¤\8fततà¥\8d à¤¸à¥\82à¤\9aना à¤\87ति à¤\89à¤\9aà¥\8dयतà¥\87 à¥¤ 
-# अत्र सर्वं पक्षविगुणं case-insensitive वर्तते 
+# à¤¯à¤¾à¤\83 à¤ªà¤\99à¥\8dà¤\95à¥\8dतयà¤\83 # à¤\87तà¥\8dयसà¥\8dमातà¥\8d à¤\86रभनà¥\8dतà¥\87, à¤¤à¤¾à¤\83 à¤¸à¥\82à¤\9aनाà¤\83
+# अत्र सर्वं पक्षविगुणं (case-insensitive) वर्तते 
 # सर्वान् regex भागान् अस्याः पङ्क्तेः उपरि स्थापयतु । एतां पङ्क्तिम् एवमेव स्थापयतु </pre>',
 
 # Special:Tags
index 04235d4..0ee9bd5 100644 (file)
@@ -751,7 +751,7 @@ IP-аадырыһа эрэ көстөр.
 'noarticletext-nopermission' => 'Билигин бу сирэй кураанах.
 Бу [[Special:Search/{{PAGENAME}}|ааты атын сирэйдэргэ көрдөөн көрүөххүн]] сөп,
 эбэтэр <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} сурунаалларга манна сыһыаннаах суруктары булуоххун сөп].</span> Бу сирэйи айар кыаҕыҥ суох.',
-'missing-revision' => '«{{PAGENAME}}» сирэй $1 барыла суох.
+'missing-revision' => '«{{FULLPAGENAME}}» сирэй $1 барыла суох.
 
 Маннык үксүн хайыы-үйэ сотуллубут билэҕэ эргэрбит сигэнэн бардахха буолааччы.
 Сиһилии баҕар [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} сотуу сурунаалыгар] баара буолуо.',
@@ -977,8 +977,7 @@ IP-аадырыһа эрэ көстөр.
 'revdelete-no-file' => 'Ыйыллыбыт билэ суох.',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" билэ баччаҕа $2, $3 сотуллубут барылын көрүөххүн баҕараҕын дуо?',
 'revdelete-show-file-submit' => 'Сөп',
-'revdelete-selected' => "'''[[:$1]] сирэй {{PLURAL:$2|талыллыбыт торума|талыллыбыт торумнара}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Сирэй талыллыбыт историята|Сирэй талыллыбыт историялара}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Сирэй талыллыбыт историята|Сирэй талыллыбыт историялара}}:',
 'revdelete-confirm' => 'Бука диэн кырдьык бу дьайыыны онороргун, содула туох буоларын өйдүүргүн уонна [[{{MediaWiki:Policy-url}}|сиэри]] тутуһаргын бигэргэт.',
 'revdelete-suppress-text' => "Кистээһин маннык түбэлтэлэргэ '''эрэ''' оҥоһуллар:
 
index a79fb82..212dd11 100644 (file)
@@ -914,8 +914,7 @@ All'amministratura è ancora possibili [$1 talìari lu confrontu] si nicissariu.
 'revdelete-no-file' => 'Lu file spicificatu nun esisti.',
 'revdelete-show-file-confirm' => 'Si desidira talìari la virsioni cancillata dô file "<nowiki>$1</nowiki>" dô $2 ê $3?',
 'revdelete-show-file-submit' => 'Sì',
-'revdelete-selected' => "'''{{PLURAL:$2|Virsioni silizziunata|Virsioni silizziunati}} di [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Eventu dû riggistru silizziunatu|Eventi dû riggistru silizziunati}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Eventu dû riggistru silizziunatu|Eventi dû riggistru silizziunati}}:',
 'revdelete-suppress-text' => "La rimozzioni havi a essiri utilizzata '''sulu''' ni sti casi:
 * Dati pirsonali inoppurtuni
 *: ''ndirizzi, nnummara di telefunu, codici fiscali, ecc.''",
index 136a516..383ac11 100644 (file)
@@ -37,9 +37,9 @@ $messages = array(
 'tog-editondblclick' => 'Eidit pages oan dooble-clap (JavaScript)',
 'tog-editsectiononrightclick' => 'Enable section editin bi richt-clapin on section teitles',
 'tog-rememberpassword' => 'Mynd ma password oan this browser (fer ae maximum o $1 {{PLURAL:$1|day|days}})',
-'tog-watchcreations' => 'Add pages that Ah cræft n files that Ah uplaid til ma watchleet',
-'tog-watchdefault' => 'Add pages n files that Ah eedit til ma watchleet',
-'tog-watchmoves' => 'Add pages n files that Ah muiv til ma watchleet',
+'tog-watchcreations' => 'Eik pages that Ah cræft n files that Ah uplaid til ma watchleet',
+'tog-watchdefault' => 'Eik pages n files that Ah eedit til ma watchleet',
+'tog-watchmoves' => 'Eik pages n files that Ah muiv til ma watchleet',
 'tog-watchdeletion' => 'Eik pages n files that Ah get rid o til ma watchleet',
 'tog-minordefault' => 'Mairk aa edits "smaa" bi defaut',
 'tog-previewontop' => 'Shaw owerview afore eedit kist n naw efter it',
@@ -181,7 +181,7 @@ $messages = array(
 'faqpage' => 'Project:ASQ',
 
 # Vector skin
-'vector-action-addsection' => 'Add topic',
+'vector-action-addsection' => 'Eik topic',
 'vector-action-delete' => 'Delyte',
 'vector-action-move' => 'Muiv',
 'vector-action-protect' => 'Fend',
@@ -359,10 +359,10 @@ likelie fer routine database maintenance; efter that it'll be back til normal.
 The admeenstration that lockit it gied this explanation: $1",
 'missing-article' => 'The database didna fynd the tex o ae page that it shid hae foond, cawed "$1" $2.
 
-Maistlie this is caused bi follaein aen ootdated diff or histerie link til ae page that haes been delytit.
+Maistlie this is caused bi follaein aen ootdated diff or histerie airtin til ae page that\'s been delytit.
 
 Gif this isna the case, ye micht hae foond ae bug in the saffware.
-Please lat aen [[Special:ListUsers/sysop|admeenistrater]] ken aneat this, makin note o the URL.',
+Please lat aen [[Special:ListUsers/sysop|admeenistrater]] ken aneat this, makin ae myndin o the URL.',
 'missingarticle-rev' => '(reveesion#: $1)',
 'missingarticle-diff' => '(Diff: $1, $2)',
 'readonly_lag' => 'The database haes been autaematically lockit while the sclave database servers catch up tae the maister',
@@ -398,10 +398,10 @@ It gae nae explanâtion.',
 'viewsourcetext' => 'Ye can leuk at n copie the soorce o this page:',
 'viewyourtext' => 'Ye can see n copie the soorce o <strong>yer eedits</strong> til this page:',
 'protectedinterface' => 'This page provides interface tex fer the saffware oan this wiki, n is protected fer tae hinder abuise.
-Tae add or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation waurk.',
-'editinginterface' => "<strong>Warnishment:</strong> Ye'r eiditing ae page that is uised tae provide interface tex fer the saffware.
-Chynges til this page will affect the appearance o the uiser interface fer ither uisers oan this wiki.
-Tae add or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
+Tae eik or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation waurk.',
+'editinginterface' => "<strong>Warnishment:</strong> Ye'r eeditin ae page that is uised tae provide interface tex fer the saffware.
+Chynges til this page will affect the kithin o the uiser interface fer ither uisers oan this wiki.
+Tae eik or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation waurk.",
 'cascadeprotected' => 'This page haes been protectit fae eiditin, cause it is inclædit in the follaein {{PLURAL:$1|page|pages}}, that ar protectit wi the "cascadin" optie turnit oan:
 $2',
 'namespaceprotected' => "Ye dinna hae permeession tae edit pages in the '''$1''' namespace.",
@@ -736,7 +736,7 @@ It micht hae been muived or delytit while ye were luikin at the page.',
 'accmailtitle' => 'Passwaird sent.',
 'accmailtext' => 'Ae randomly generated passwaird fer [[User talk:$1|$1]] haes been sent til $2. It can be chynged oan the <em>[[Special:ChangePassword|chynge passwaird]]</em> page upo loggin in.',
 'newarticle' => '(New)',
-'newarticletext' => "Ye'v follaed ae link til ae page that disna exeest yet. Tae cræft the page, stairt typin in the kist ablo (see the [$1 heelp page] fer mair info). Gif ye'r here bi mistak, jist clap yer brouser's <strong>back</strong> button.",
+'newarticletext' => "Ye'v follaed aen airtin til ae page that disna exeest yet. Tae cræft the page, stairt typin in the kist ablo (see the [$1 heelp page] fer mair info). Gif ye'r here bi mistak, jist clap yer brouser's <strong>back</strong> button.",
 'anontalkpagetext' => "----
 <em>This is the discussion page fer aen anonymoos uiser that's naw cræftit aen accoont yet, or that disna uise it.</em>
 We maun therefore uise the numerical IP address tae identifie him/her.
@@ -748,7 +748,7 @@ Ye can [[Special:Search/{{PAGENAME}}|rake fer this page teitle]] in ither pages,
  or [{{fullurl:{{FULLPAGENAME}}|action=edit}} eidit this page].</span>',
 'noarticletext-nopermission' => 'There isna oni tex in this page the nou.
 Ye can [[Special:Search/{{PAGENAME}}|rake fer this page title]] in ither pages, or <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rake the relatit logs]</span>, but ye dina hae permeession tae mak this page.',
-'missing-revision' => 'The reveesion #$1 o the page named "{{PAGENAME}}" disna exeest.
+'missing-revision' => 'The reveesion #$1 o the page named "{{FULLPAGENAME}}" disna exeest.
 
 This is uissuallie caused bi follaein aen ootdated histerie link til ae page that haes been delytit.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].',
@@ -975,8 +975,9 @@ Ye can view this diff; details can be foond in the [{{fullurl:{{#Special:Log}}/s
 'revdelete-no-file' => 'The file speceefied disna exeest.',
 'revdelete-show-file-confirm' => 'Ar ye sair ye wish tae see ae delytit reveesion o the file "<nowiki>$1</nowiki>" fae $2 at $3?',
 'revdelete-show-file-submit' => 'Ai',
-'revdelete-selected' => '<strong>{{PLURAL:$2|Selected reveesion|Selected reveesions}} o [[:$1]]:</strong>',
-'logdelete-selected' => "'''{{PLURAL:$1|Selectit log event|Selectit log events}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Selectit luikower|Selectit luikowers}} o [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Selectit file version|Selectit file versions}} o [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Selectit log event|Selectit log events}}:',
 'revdelete-text-text' => 'Delytit reveesions will still kith in the page histerie, bit pairts o thair content will be onaccessible til the publeec.',
 'revdelete-text-file' => 'Delytit file versions will still kith in the file histerie, bit pairts o thair content will be onaccessible til the publeec.',
 'logdelete-text' => 'Delytit log events will still kith in the logs, bit pairts o thair content will be onaccessible til the publeec.',
@@ -1045,7 +1046,7 @@ Mak sair that this chynge will maintain historical page conteenuitie.',
 'mergehistory-list' => 'Mergeable eidit histerie',
 'mergehistory-merge' => 'The follaein reveesions o [[:$1]] can be merged intil [[:$2]].
 Uise the radio button column tae merge in yinlie the reveesions cræftit at n afore the speceefied time.
-Mynd that uisin the naveegation links will reset this column.',
+Mynd that uisin the naveegation airtins will reset this column.',
 'mergehistory-go' => 'Shaw mergeable eidits',
 'mergehistory-submit' => 'Merge reveesions',
 'mergehistory-empty' => 'Naw reveesions can be merged.',
@@ -1079,10 +1080,10 @@ Mynd that uisin the naveegation links will reset this column.',
 'diff-multi-sameuser' => '({{PLURAL:$1|yin intermeediate reveesion|$1 intermeediate reveesions}} bi the same uiser naw shawn)',
 'diff-multi-otherusers' => '({{PLURAL:$1|yin intermeediate reveesion|$1 intermeediate reveesions}} bi {{PLURAL:$2|yin ither uiser|$2 uisers}} no shawn)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Yin intermeediate reveesion|$1 intermeediate reveesions}} bi mair than $2 {{PLURAL:$2|uiser|uisers}} no shawn)',
-'difference-missing-revision' => '{{PLURAL:$2|Yin reveesion|$2 reveesions}} o this difference ($1) {{PLURAL:$2|was|were}} no fond.
+'difference-missing-revision' => "{{PLURAL:$2|Yin reveesion|$2 reveesions}} o this difference ($1) {{PLURAL:$2|wis|were}} na foond.
 
-This is usually caused bi follaein aen ootdated diff link til ae page that haes been delytit.
-Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].',
+This is usuallie caused bi follaein aen ootdated diff airtin til ae page that's been delytit.
+Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].",
 
 # Search results
 'searchresults' => 'Rake results',
@@ -1169,7 +1170,7 @@ Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'prefs-editing' => 'Editin',
 'rows' => 'Raws:',
 'searchresultshead' => 'Rake result settins',
-'stub-threshold' => 'Threeshaud fer <a href="#" class="stub">stub link</a> formattin (bytes):',
+'stub-threshold' => 'Threeshaud fer <a href="#" class="stub">stub airtin</a> formattin (bytes):',
 'stub-threshold-disabled' => 'Tuckie',
 'recentchangesdays' => 'Days tae shaw in recynt chynges:',
 'recentchangesdays-max' => 'Mucklest $1 {{PLURAL:$1|day|days}}',
@@ -1261,13 +1262,13 @@ Yer wab-mail address isna revealed whan ither uisers contact ye.',
 'userrights-groupsmember-auto' => 'Impleecit memmer o:',
 'userrights-groups-help' => "Ye can alter the groops this uiser is in:
 * Ae checkit kist means that the uiser is in that groop.
-* Aen oncheckit kist means that the uiser's no in that groop.
-* Ae * indicates that ye cannae remuiv the groop yince ye'v added it, or vice versa.",
+* Aen oncheckit kist means that the uiser's na in that groop.
+* Ae * indeecates that ye canna remuiv the groop yince ye'v eikit it, or vice versa.",
 'userrights-reason' => 'Raison:',
 'userrights-no-interwiki' => 'Ye dinna hae permission tae eedit uiser richts oan ither wikis.',
 'userrights-nodatabase' => 'Database $1 disna exeest or isna local.',
 'userrights-nologin' => 'Ye maun [[Special:UserLogin|log in]] wi aen admeenistrater accoont tae assign uiser richts.',
-'userrights-notallowed' => 'Ye dinna hae permission tae add or remuiv uiser richts.',
+'userrights-notallowed' => 'Ye dinna hae permeession tae eik or remuiv uiser richts.',
 'userrights-changeable-col' => 'Groops that ye can chynge',
 'userrights-unchangeable-col' => 'Groops ye canna chynge',
 'userrights-conflict' => 'Conflict o uiser richts chynges! Please luikower n confirm yer chynges.',
@@ -1341,7 +1342,7 @@ Yer wab-mail address isna revealed whan ither uisers contact ye.',
 'right-editmyusercss' => 'Eidit yer ain uiser CSS files',
 'right-editmyuserjs' => 'Eedit yer ain uiser JavaScript files',
 'right-viewmywatchlist' => 'See yer ain watchleet',
-'right-editmywatchlist' => 'Eedit yer ain watchleet. Myd that some actions will still add pages even wioot this richt.',
+'right-editmywatchlist' => 'Eedit yer ain watchleet. Mynd that some actions will still eik pages even wioot this richt.',
 'right-viewmyprivateinfo' => 'See yer ain preevate data (e.g. wab-mail address, real name)',
 'right-editmyprivateinfo' => 'Eedit yer ain preevate data (e.g. wab-mail address, real name)',
 'right-editmyoptions' => 'Eedit yer ain preeferences',
@@ -1485,9 +1486,9 @@ Pages oan [[Special:Watchlist|yer watchleet]] ar <strong>baud</strong.',
 
 The delytion n muiv log fer this page ar gien here fer conveeneeance:",
 'uploadtext' => 'Uise the form ablo tae uplaid files.
-Tae see or rake preeveeooslie uplaided files gang til the [[Special:FileList|leet o uplaided files]], (re)uplaids ar loggit in the [[Special:Log/upload|uplaid log]] ava, delytions in the [[Special:Log/delete|delytion log]].
+Tae see or rake preeveeislie uplaided files gang til the [[Special:FileList|leet o uplaided files]], (re)uplaids ar loggit in the [[Special:Log/upload|uplaid log]] ava, delytions in the [[Special:Log/delete|delytion log]].
 
-Tae incluid ae file in ae page, uise ae link in yin o the follaein forms:
+Tae incluid ae file in ae page, uise aen airtin in yin o the follaein forms:
 * <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> tae uise the ful version o the file
 * <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt tex]]</nowiki></code></strong> tae uise ae 200 pixel wide rendeetion in ae kist in the cair margin wi "alt tex" aes descreeption
 * <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> fer linkin directlie til the file wioot displeyin the file.',
@@ -1752,10 +1753,10 @@ Ye micht want tae try at ae less busie time.',
 'filehist-missing' => 'File missin',
 'imagelinks' => 'File uisage',
 'linkstoimage' => 'The follaein {{PLURAL:$1|page airts|$1 pages airt}} tae this file:',
-'linkstoimage-more' => 'Mair than $1 {{PLURAL:$1|page links|pages link}} til this file.
-The follaein leet shaws the {{PLURAL:$1|first page link|first $1 page links}} til this file yinlie.
+'linkstoimage-more' => 'Mair than $1 {{PLURAL:$1|page airts|pages airt}} til this file.
+The follaein leet shaws the {{PLURAL:$1|first page airtin|first $1 page airtins}} til this file yinlie.
 Ae [[Special:WhatLinksHere/$2|ful leet]] is available.',
-'nolinkstoimage' => "Thaur's nae pages that link til this eemage.",
+'nolinkstoimage' => "Thaur's nae pages that airt til this eemage.",
 'morelinkstoimage' => 'See [[Special:WhatLinksHere/$1|mair links]] til this file.',
 'linkstoimage-redirect' => '$1 (file reguidal) $2',
 'duplicatesoffile' => 'The follaein {{PLURAL:$1|file is ae dupleecate|$1 files ar dupleecates}} o this file ([[Special:FileDuplicateSearch/$2|mair details]]):',
@@ -1818,10 +1819,15 @@ Input: contenttype/subtype, e.g. <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Leet o reguidals',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Leet o files wi dupleecates',
+'listduplicatedfiles-summary' => 'This is ae leet o files whaur the maist recynt version o the file is ae duplicate o the maist recynt version o some ither file. Yinlie local files ar conseederit.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] haes [[$3|{{PLURAL:$2|ae dupleecate|$2 dupleecates}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Templates that arena uised',
-'unusedtemplatestext' => "This page leets aw pages in the {{ns:template}} namespace that's naw incuidit in anither page. Mynd n check fer ither links til the templates afore delytin thaim.",
-'unusedtemplateswlh' => 'ither links',
+'unusedtemplatestext' => "This page leets aw pages in the {{ns:template}} namespace that's naw incuidit in anither page. Mynd n check fer ither airtins til the templates afore delytin thaim.",
+'unusedtemplateswlh' => 'ither airtins',
 
 # Random page
 'randompage' => 'Wale page allevolie',
@@ -1868,7 +1874,7 @@ Input: contenttype/subtype, e.g. <code>image/jpeg</code>.',
 
 'doubleredirects' => 'Dooble reguidals',
 'doubleredirectstext' => 'This page leets pages that reguide til ither reguidal pages.
-Ilka raw contains links til the first n seicont reguidals, n the tairget o the seicont reguidal ava, this is uisuallie the "real" tairget page whaur the first reguidal shid poynt.
+Ilka raw contains airtins til the first n seicont reguidals, n the tairget o the seicont reguidal ava, this is uisuallie the "real" tairget page whaur the first reguidal shid poynt.
 <del>Crossed oot</del> entries hae been solved.',
 'double-redirect-fixed-move' => '[[$1]] haes been muived.
 It nou reguides til [[$2]].',
@@ -1880,7 +1886,7 @@ It nou reguides til [[$2]].',
 'brokenredirects-edit' => 'eedit',
 'brokenredirects-delete' => 'delyte',
 
-'withoutinterwiki' => 'Pages athoot leid links',
+'withoutinterwiki' => 'Pages wioot leid airtins',
 'withoutinterwiki-summary' => 'The follaein pages dinan link til ither leid versions.',
 'withoutinterwiki-legend' => 'Prefix',
 'withoutinterwiki-submit' => 'Shaw',
@@ -1890,7 +1896,7 @@ It nou reguides til [[$2]].',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|category|categories}}',
-'nlinks' => '$1 {{PLURAL:$1|link|links}}',
+'nlinks' => '$1 {{PLURAL:$1|airtin|airtins}}',
 'nmembers' => '$1 {{PLURAL:$1|membir|membirs}}',
 'nmemberschanged' => '$1 → $2 {{PLURAL:$2|memmer|memmers}}',
 'nrevisions' => '$1 {{PLURAL:$1|reveesion|reveesions}}',
@@ -1970,7 +1976,7 @@ Please mynd that ither wab sites micht link til ae file wi ae direct URL, n sae
 'booksources' => 'Beuk sources',
 'booksources-search-legend' => 'Rake fer buik soorces',
 'booksources-go' => 'Gang',
-'booksources-text' => "Ablo is ae leet o links til ither sites that sell new n uised buiks, n mmicht hae further information aneat buiks that ye'r seekin ava:",
+'booksources-text' => "Ablo is ae leet o airtins til ither steids that sell new n uised buiks, n micht hae further information aneat buiks that ye'r seekin ava:",
 'booksources-invalid-isbn' => 'The gien ISBN disna seem tae be valid; check fer mistaks copiein fae the oreeginal soorce.',
 
 # Special:Log
@@ -2019,7 +2025,7 @@ See [[Special:WantedCategories|wanted categeries]] ava.',
 'sp-deletedcontributions-contribs' => 'contreebutions',
 
 # Special:LinkSearch
-'linksearch' => 'External links rake',
+'linksearch' => 'Ootby airtins rake',
 'linksearch-pat' => 'Rake pattern:',
 'linksearch-ns' => 'Namespace:',
 'linksearch-ok' => 'Rake',
@@ -2055,13 +2061,13 @@ There micht be [[{{MediaWiki:Listgrouprights-helppage}}|addeetional information]
 'listgrouprights-rights' => 'Richts',
 'listgrouprights-helppage' => 'Help:Groop richts',
 'listgrouprights-members' => '(leet o members)',
-'listgrouprights-addgroup' => 'Add {{PLURAL:$2|groop|groops}}: $1',
+'listgrouprights-addgroup' => 'Eik {{PLURAL:$2|groop|groops}}: $1',
 'listgrouprights-removegroup' => 'Remuiv {{PLURAL:$2|grop|groops}}: $1',
-'listgrouprights-addgroup-all' => 'Add aw groops',
+'listgrouprights-addgroup-all' => 'Eik aw groops',
 'listgrouprights-removegroup-all' => 'Remui aw groops',
-'listgrouprights-addgroup-self' => 'Add {{PLURAL:$2|groop|groops}} til yer accoont: $1',
+'listgrouprights-addgroup-self' => 'Eik {{PLURAL:$2|groop|groops}} til yer accoont: $1',
 'listgrouprights-removegroup-self' => 'Remuiv {{PLURAL:$2|groop|groops}} fae yer accoont: $1',
-'listgrouprights-addgroup-self-all' => 'Add aw groops til yer accoont',
+'listgrouprights-addgroup-self-all' => 'Eik aw groops til yer accoont',
 'listgrouprights-removegroup-self-all' => 'Remuiv aw groops fae yer accoont',
 
 # Email user
@@ -2108,7 +2114,7 @@ The wab-mail address that ye entered in [[Special:Preferences|yer uiser preefera
 'watchlistanontext' => 'Please $1 tae see or eedit eetems oan yer watchlet.',
 'watchnologin' => 'Nae loggit in',
 'watchnologintext' => 'Ye maun be [[Special:UserLogin|loggit in]] tae modify yer watchleet.',
-'addwatch' => 'Add til watchleet',
+'addwatch' => 'Eik til watchleet',
 'addedwatchtext' => 'The page "[[:$1]]" haes been added til yer [[Special:Watchlist|watchleet]].
 Futur chynges til this page n its associated tauk page will be leeted thaur.',
 'removewatch' => 'Remuiv fae watchleet',
@@ -2214,7 +2220,7 @@ Delytion o sic pages haes been restrictit tae stap accidental disruption o {{SIT
 'delete-warning-toobig' => 'This page haes ae muckle eedit histerie, ower $1 {{PLURAL:$1|reveesion|reveesions}}.
 Delytin it micht disrupt database operations o {{SITENAME}};
 proceed wi caution.',
-'deleting-backlinks-warning' => "'''Warnishment:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Ither pages]] link til or transcluide the page ye'r aboot tae delyte.",
+'deleting-backlinks-warning' => "'''Warnishment:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Ither pages]] airt til or transcluide the page ye'r aboot tae delyte.",
 
 # Rollback
 'rollback' => 'Row back edits',
@@ -2392,7 +2398,7 @@ The latest block log entrie is gien ablo fer referance:',
 'sp-contributions-submit' => 'Rake',
 
 # What links here
-'whatlinkshere' => 'Whit links here',
+'whatlinkshere' => 'Whit airts here',
 'whatlinkshere-title' => 'Pages that link til "$1"',
 'whatlinkshere-page' => 'Page:',
 'linkshere' => 'The follaein pages link til <strong>[[:$1]]</strong>:',
@@ -2400,13 +2406,13 @@ The latest block log entrie is gien ablo fer referance:',
 'nolinkshere-ns' => 'No pages aiet til <strong>[[:$1]]</strong> in the choosen namespace.',
 'isredirect' => 'reguidal page',
 'istemplate' => 'transclusion',
-'isimage' => 'file link',
+'isimage' => 'file airtin',
 'whatlinkshere-prev' => '{{PLURAL:$1|previous|previous $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|next|next $1}}',
-'whatlinkshere-links' => '← links',
+'whatlinkshere-links' => '← airtins',
 'whatlinkshere-hideredirs' => '$1 redirects',
 'whatlinkshere-hidetrans' => '$1 transclusions',
-'whatlinkshere-hidelinks' => '$1 links',
+'whatlinkshere-hidelinks' => '$1 airtins',
 'whatlinkshere-hideimages' => '$1 file airtins',
 'whatlinkshere-filters' => 'Filters',
 
@@ -2423,7 +2429,7 @@ The latest block log entrie is gien ablo fer referance:',
 'ipbreason-dropdown' => '*Commyn block raisons
 ** Insertin false information
 ** Remuivin content fae pages
-** Spammin links til external sites
+** Spammin airtins til ootby steids
 ** Insertin nonsense/gibberish intil pages
 ** Inteemidatin behavier/harassment
 ** Abuisin multiple accoonts
@@ -2551,7 +2557,7 @@ Tae lock or lowse the database, this needs tae be writable bi the wab server.',
 The auld title will become ae reguidal page til the new title.
 Ye can update reguidals that poynt til the oreeginal title autæmateeclie.
 Gif ye chuise na tae, be sair tae check fer [[Special:DoubleRedirects|dooble]] or [[Special:BrokenRedirects|broken reguidals]].
-Ye'r responsible fer makin sair that links continue tae poynt til whaur thay'r supposed to gae.
+Ye'r responsible fer makin sair that airtins continue tae poynt til whaur thay'r supposed to gae.
 
 Mynd that the page will <strong>na</strong> be muived gif thaur is awreadie ae page at the new title, onless the latter is ae reguidal n haes nae past eedit histerie.
 This means that ye can rename ae page back til whaur it wis renamed fae gif ye mak ae mistak, n ye canna owerwrite aen exeestin page.
@@ -2634,19 +2640,19 @@ Please chuise anither name.',
 
 # Export
 'export' => 'Export pages',
-'exporttext' => 'Ye can export the tex n eeditin histerie o ae parteecular page or set o pages wrapped in some XML.
+'exporttext' => 'Ye can export the tex n eeditin histerie o ae parteecular page or set o pages wrapt in some XML.
 This can be imported intil anither wiki uisin MediaWiki bi waa o the [[Special:Import|import page]].
 
-Tae export pages, enter the titles in the tex kist ablo, yin title per line, n select whether ye want the Nou reveesion  aw auld reveesions ava, wi the page histerie lines, or the Nou reveesion wi the info aneat the laist eedit.
+Tae export pages, enter the titles in the tex kist ablo, yin title per line, n select whather ye want the Nou reveesion  aw auld reveesions ava, wi the page histerie lines, or the Nou reveesion wi the info aneat the laist eedit.
 
-In the latter case ye can uise ae link ava, fer example [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] fer the page "[[{{MediaWiki:Mainpage}}]]".',
+In the latter case ye can uise aen airtin ava, fer example [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] fer the page "[[{{MediaWiki:Mainpage}}]]".',
 'exportall' => 'Export aw pages',
 'exportcuronly' => 'Inclæde juist the nou reveesion, naw the ful histerie',
 'exportnohistory' => '----
 <strong>Mynd:</strong> Exportin the ful histerie o pages throogh this form haes been disabled cause o performance raisons.',
 'exportlistauthors' => 'Incluid ae ful leet o contreebuters fer ilka page',
-'export-addcattext' => 'Add pages fae categerie:',
-'export-addnstext' => 'Add pages fae namespace:',
+'export-addcattext' => 'Eik pages fae categerie:',
+'export-addnstext' => 'Eik pages fae namespace:',
 'export-download' => 'Hain aes file',
 'export-templates' => 'Incluid templates',
 'export-pagelinks' => 'Incluid linkt pages til ae depth o:',
@@ -2766,7 +2772,7 @@ Ye can view its soorce',
 'tooltip-ca-delete' => 'Delyte this page',
 'tooltip-ca-undelete' => 'Restore the eedits dun oan this page afore it wis delytit',
 'tooltip-ca-move' => 'Muiv this page',
-'tooltip-ca-watch' => 'Add this page til yer watchleet',
+'tooltip-ca-watch' => 'Eik this page til yer watchleet',
 'tooltip-ca-unwatch' => 'Remove this page frum yer watchleet',
 'tooltip-search' => 'Rake {{SITENAME}}',
 'tooltip-search-go' => 'Gang til ae page wi this exact name gif exeests',
@@ -2804,7 +2810,7 @@ Ye can view its soorce',
 'tooltip-preview' => 'Luikower yer chynges, please uise this afore hainin!',
 'tooltip-diff' => 'Shaw the chynges that ye makit til the tex.',
 'tooltip-compareselectedversions' => 'See the differs atween the twa selectit versions o this page.',
-'tooltip-watch' => 'Add this page tae yer watchleet',
+'tooltip-watch' => 'Eik this page til yer watchleet',
 'tooltip-watchlistedit-normal-submit' => 'Remuiv titles',
 'tooltip-watchlistedit-raw-submit' => 'Update watchleet',
 'tooltip-recreate' => "Recræft the page even thoogh it's been delytit",
@@ -2957,12 +2963,12 @@ Bi executin it, yer system micht be compromised.',
 # Bad image list
 'bad_image_list' => 'The format is aes follaes:
 
-Ainlie leet items (lines stairtin wi *) ar considered. The foremaist link oan ae line maun be ae link til aen ill file. Oni subsequent links oan the same line ar considered tae be exceptions, i,e., pages whaur the eimage can occur inline.',
+Ainlie leet eetems (lines stairtin wi *) ar considered. The foremaist airtin oan ae line maun be aen airtin til aen ill file. Onie subsequent airtins oan the same line ar considered tae be exceptions, i,e., pages whaur the eemage can occur inline.',
 
 # Metadata
 'metadata' => 'Metadata',
-'metadata-help' => 'This file contains addeetional speirins, likelie added fae the deegital camera or scanner uised tae cræft or deegitize it. 
-Gif the file haes bin modified fae its oreeginal state, some details micht naw fullie reflect the modified file.',
+'metadata-help' => 'This file contains addeetional information, likelie eikit fae the deegital camera or scanner uised tae cræft or deegitise it. 
+Gif the file haes bin modeefied fae its oreeginal state, some details micht na fullie reflect the modeefied file.',
 'metadata-expand' => 'Shaw extendit details',
 'metadata-collapse' => 'Skauk extendit details',
 'metadata-fields' => "Eemage metadata fields leetit in this message will be incluidit oan eemage page displey whan the metadata buird is collaps't. Ithers will be skaukt bi defaut. 
@@ -3370,7 +3376,7 @@ Please confirm that ye reallie want tae recræft this page.',
 'confirm-purge-bottom' => 'Purgin ae page clears the cache n forces the maist recynt reveesion tae appear.',
 
 # action=watch/unwatch
-'confirm-watch-top' => 'Add this page til yer watchleet?',
+'confirm-watch-top' => 'Eik this page til yer watchleet?',
 'confirm-unwatch-top' => 'Remuiv this page fae yer watchleet?',
 
 # Multipage image navigation
@@ -3515,9 +3521,9 @@ Ye shid hae receeved [{{SERVER}}{{SCRIPTPATH}}/COPIEIN ae copie o the GNU Genera
 
 # External image whitelist
 'external_image_whitelist' => ' #Lea this line exactlie aes it is<pre>
-#Put regulair expression fragments (juist the pairt that gaes atween the //) ablo
-#Thir will be matched wi the URLs o external (hotlinked) eimages
-#Thae that match will be displeyed aes eimages, itherwise yinlie ae link til the eimage will be shawn
+#Put regulair expression fragments (jist the pairt that gaes atween the //) ablo
+#Thir will be matched wi the URLs o ootby (hotairtit) eemages
+#Thae that match will be displeyed aes eemages, itherwise yinlie aen airtin til the eemage will be shawn
 #Lines beginnin wi # ar treated aes comments
 #This is case-onsensiteeve
 
@@ -3608,8 +3614,8 @@ Ye shid hae receeved [{{SERVER}}{{SCRIPTPATH}}/COPIEIN ae copie o the GNU Genera
 'rightsnone' => '(nane)',
 
 # Feedback
-'feedback-bugornote' => 'Gif yer readie tae describe ae techneecal problem in detail please [$1 report ae bug].
-Itherwise, ye can uiss the easie form ablo. Yer comment will be added til the page "[$3 $2]", alang wi yer uisername.',
+'feedback-bugornote' => 'Gif yer readie tae describe ae techneecal proablem in detail please [$1 report ae bug].
+Itherwise, ye can uiss the easie form ablo. Yer comment will be eikit til the page "[$3 $2]", alang wi yer uisername.',
 'feedback-adding' => 'Addin feedback til page...',
 'feedback-error1' => 'Mistak: Onrecognised ootcome fae API',
 'feedback-error2' => 'Mistak: Eedit failed',
index 9726a71..5dfbb35 100644 (file)
@@ -712,8 +712,7 @@ Cunsulthà lu [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rigi
 'revdelete-nooldid-title' => 'Versioni nò ippizzificadda',
 'revdelete-nooldid-text' => "No ài ippizzificaddu la o li versioni di la pàgina i' li quari eseguì chistha funzioni; pò assé chi nò esisthini.",
 'revdelete-show-file-submit' => 'Si',
-'revdelete-selected' => "'''{{PLURAL:$2|Versioni sciubaradda|Versioni sciubaraddi}} di [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Eventu di lu rigisthru sciubaraddu|Eventi di lu rigisthru sciubaraddi}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Eventu di lu rigisthru sciubaraddu|Eventi di lu rigisthru sciubaraddi}}:',
 'revdelete-legend' => "Impustha li sighenti limitazioni i'li versioni canzilladdi:",
 'revdelete-hide-text' => 'Cua lu testhu di la versioni',
 'revdelete-hide-image' => 'Cua li cuntinuddi di lu file',
index 2dff34c..8fcade9 100644 (file)
@@ -325,7 +325,6 @@ $messages = array(
 'disclaimers' => 'Friijavuohta vástideamis',
 'disclaimerpage' => 'Project:Friijavuohta vástideamis',
 'edithelp' => 'Rievdadanrávvagat',
-'helppage' => 'Help:Sisdoallu',
 'mainpage' => 'Váldosiidu',
 'mainpage-description' => 'Váldosiidu',
 'portal' => 'Gáffestohpu',
@@ -564,11 +563,7 @@ Don fertet dahkat du rievdadusaid dálá tekstii.
 'rev-delundel' => 'čájet dahje čiega',
 'revisiondelete' => 'Sihko dahje máhcat veršuvnnaid',
 'revdelete-nooldid-title' => 'Ii veršuvdna',
-'revdelete-selected' => "'''{{PLURAL:$2|Válljejuvvon veršuvdna|Válljejuvvon veršuvnnat}} siiddus [[:$1]]'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Válljejuvvon logmearkkastat|Válljejuvvon logmearkkastagat}}:'''",
-'revdelete-text' => "'''Sihkojuvvon veršuvnnat oidnojit siiddu siidohistorjjás, muhto daid sisdoallu ii leat álmmolaš.'''
-
-Eará bajasdoallit sáhtet lohkat čihkojuvvon sisdoalu ja máhcahit dan.",
+'logdelete-selected' => '{{PLURAL:$1|Válljejuvvon logmearkkastat|Válljejuvvon logmearkkastagat}}:',
 'revdelete-legend' => 'Veršuvnna rádjehusat',
 'revdelete-hide-text' => 'Čiega veršuvnna sisdoalu',
 'revdelete-hide-image' => 'Čiega fiilla sisdoalu',
index b3949da..502c23e 100644 (file)
@@ -528,7 +528,6 @@ Informacion: (curt) = quiíxde vercion currentua,
 'rev-delundel' => 'cohuatlöx/cíiitám',
 'revisiondelete' => 'Delatom/diidelatom revición',
 'revdelete-nooldid-title' => 'Necoccebj aimde revicion',
-'revdelete-selected' => "'''{{PLURAL:$2|Revicion selectonde|Revición selectónde}} $1:'''",
 'revdelete-legend' => 'Xuniim restricción',
 'revdelete-hide-text' => 'Camaát textuade revicion',
 'revdelete-hide-image' => 'Cohuatlöx contentua ciúchan',
index a480664..98e5e43 100644 (file)
@@ -666,7 +666,7 @@ Pamiegīkėt [[Special:Search|ėiškoutė pruojektė]] sosėjosiu naujū poslapi
 # Revision deletion
 'rev-delundel' => 'ruodītė/kavuotė',
 'revisiondelete' => 'Trintė/atkortė versėjės',
-'logdelete-selected' => "{{PLURAL:$2|Pasėrinkts|Pasėrinktė|Pasėrinktė}} '''$1''' istuorėjės {{PLURAL:$2|atėtėkims|atsėtėkimā|atsėtėkimā}}:",
+'logdelete-selected' => '{{PLURAL:$2|Pasėrinkts|Pasėrinktė|Pasėrinktė}} $1 istuorėjės {{PLURAL:$2|atėtėkims|atsėtėkimā|atsėtėkimā}}:',
 'revdelete-unsuppress' => 'Šalėntė apribuojėmos atkortuos versėjės',
 'revdel-restore' => 'Keistė veizėmuma',
 'revdelete-edit-reasonlist' => 'Keistė trīnėma prīžastis',
index 67311a5..bb4c063 100644 (file)
@@ -737,6 +737,7 @@ Molimo Vas da sačekate prije nego što pokušate ponovo.',
 'login-abort-generic' => 'Vaša prijava nije bila uspješna – Prekinuto',
 'loginlanguagelabel' => 'Jezik: $1',
 'suspicious-userlogout' => 'Vaš zahtjev za odjavu je odbijen jer je poslan preko pokvarenog preglednika ili keširanog proksija.',
+'pt-userlogout' => 'Odjavi se / Одјави се',
 
 # Email sending
 'php-mail-error-unknown' => 'Nepoznata greška u PHP funkciji mail()',
@@ -911,7 +912,7 @@ Možete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] u drugim st
 ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.',
 'noarticletext-nopermission' => 'Trenutno nema teksta na ovoj stranici.
 Možete [[Special:Search/{{PAGENAME}}|tražiti ovaj naslov stranice]] na drugim stranicama ili <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane registre]</span>. alio nemate dozvolu za stvaranje ove stranice.',
-'missing-revision' => 'Ne mogu da pronađem izmenu br. $1 na stranici pod nazivom „{{PAGENAME}}“.
+'missing-revision' => 'Ne mogu da pronađem izmenu br. $1 na stranici pod nazivom „{{FULLPAGENAME}}“.
 
 Ovo se obično dešava kada pratite zastarjelu vezu do stranice koja je obrisana.
 Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} evidenciji brisanja].',
@@ -1145,8 +1146,7 @@ ili ta revizija ne postoji, ili pokušavate sakriti trenutnu reviziju.',
 'revdelete-no-file' => 'Navedena datoteka ne postoji.',
 'revdelete-show-file-confirm' => 'Da li ste sigurni da želite pogledati obrisanu reviziju datoteke "<nowiki>$1</nowiki>" od $2 u $3?',
 'revdelete-show-file-submit' => 'Da',
-'revdelete-selected' => "'''{{PLURAL:$2|Odabrana revizija|Odabrane revizije}} od [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Označena stavka registra|Označene stavke registra}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Označena stavka registra|Označene stavke registra}}:',
 'revdelete-confirm' => 'Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Ograničenja bi trebala biti korištena '''samo''' u sljedećim slučajevima:
 * Osjetljive korisničke informacije
index 5e64413..137bd75 100644 (file)
@@ -433,7 +433,7 @@ $1",
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage).
 'aboutsite' => '{{SITENAME}} පිළිබඳ',
 'aboutpage' => 'Project:පිළිබඳ',
-'copyright' => ' $1 යටතේ අන්තර්ගතය දැක ගත හැක.',
+'copyright' => ' අන්ලෙසකින් සඳහන්කර නැති සෑම විටෙකම අන්තර්ගතය $1 යටතේ ඇත.',
 'copyrightpage' => '{{ns:project}}:කර්තෘ-හිමිකම්',
 'currentevents' => 'කාලීන සිදුවීම්',
 'currentevents-url' => 'Project:කාලීන සිදුවීම්',
@@ -1128,8 +1128,7 @@ $3 විසින් සපයා ඇති හේතුව ''$2'' වේ",
 'revdelete-no-file' => 'නිවේශිත ගොනුව නොපවතියි.',
 'revdelete-show-file-confirm' => '$2 දින $3 වේලාවේදී මකාදැමුනු "<nowiki>$1</nowiki>" ගොනුවෙහි සංශෝධනයක් නැරඹීමට ඔබ හට සහතික වශයෙන් ඇවැසිද?',
 'revdelete-show-file-submit' => 'ඔව්',
-'revdelete-selected' => "'''[[:$1]] හි {{PLURAL:$2|තෝරාගත් සංශෝධනය|තෝරාගත් සංශෝධනයන්}} :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|තෝරාගත් ලඝු-සිදුවීම|තෝරාගත් ලඝු-සිදුවීම්}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|තෝරාගත් ලඝු-සිදුවීම|තෝරාගත් ලඝු-සිදුවීම්}}:',
 'revdelete-confirm' => 'කරුණාකර ඔබ මෙය කිරීමට අදහස් කරන බවත්,එහි ප්‍රතිඵලය අවබෝධ කර ගන්නා බවත්,මෙය සිදු කරනුයේ [[{{MediaWiki:Policy-url}}| ප්‍රතිපත්තියට]] අනුකූලව බවත් තහවුරු කරන්න.',
 'revdelete-suppress-text' => "යටපත්කිරීම පහත අවස්ථාවන්හිදී  '''පමණක්''' භාවිතා කල යුතුය:
 * නුසුදුසු පෞද්ගලික තොරතුරු
@@ -1359,7 +1358,7 @@ $1",
 HTML ටැගයන් පිරික්සන්න.',
 'badsiglength' => 'ඔබගේ විද්‍යුත් අත්සන පමණට වඩා දිගු වැඩිය.
 එය  {{PLURAL:$1|එක් අක්ෂරයකට|අක්ෂරයන් $1 කට}} වඩා කෙටි විය යුතුය.',
-'yourgender' => 'à·\83à·\8aතà·\8aâ\80\8dරà·\93/පà·\94රà·\94à·\82 à¶·à·\8fà·\80ය:',
+'yourgender' => 'à\94බà¶\9cà·\9a à·\83à·\8aතà·\8aâ\80\8dරà·\93/පà·\94රà·\94à·\82 à·\83මà·\8fජභà·\8fà·\80ය à·\83ඳà·\84නà·\8aà¶\9aà·\92රà·\93මට à¶\94බ à·\80ඩà·\8fතà·\8aම à¶\9aà·\90මතà·\92 à¶\9aà·\99à·\83à·\9aද ?',
 'gender-unknown' => 'හෙළි නොකරයි',
 'gender-male' => 'පුරුෂ',
 'gender-female' => 'ස්ත්‍රී',
@@ -1458,7 +1457,7 @@ HTML ටැගයන් පිරික්සන්න.',
 'right-reupload' => 'පවතින ගොනු අධිලිවීමකට ලක්කරන්න (overwrite)',
 'right-reupload-own' => 'යමෙකු විසින්ම උඩුගත කෙරුනු පවතින ගොනුවක් අධිලිවීමකට ලක්කරන්න',
 'right-reupload-shared' => 'හවුල් මාධ්‍ය සුරක්‍ෂිතාගාරයෙහි ගොනු සීමිත අබිබැවීමකට ලක් කරන්න',
-'right-upload_by_url' => 'URL à¶½à·\92පà·\92නයà¶\9aà·\92නà·\8a (à¶\9aලà·\8fප à¶½à·\92පà·\92නයà¶\9aà·\92නà·\8aගොනුවක් උඩුගත කරන්න',
+'right-upload_by_url' => 'URL à¶½à·\92පà·\92නයà¶\9aà·\8a à·\80à·\99තà·\92නà·\8aගොනුවක් උඩුගත කරන්න',
 'right-purge' => 'තහවුරුකිරීමකින් තොරව, පිටුවක් සඳහා අඩවි පූර්වාපේක්‍ෂි සංචිතය (කෑෂය) විමෝචනය කරන්න',
 'right-autoconfirmed' => 'අර්ධ-ආරක්‍ෂිත පිටු සංස්කරණය කරන්න',
 'right-bot' => 'ස්වයංක්‍රීය ක්‍රියාවලියක් ලෙස සැළකෙන්න',
@@ -1607,7 +1606,7 @@ HTML ටැගයන් පිරික්සන්න.',
 'recentchangeslinked-to' => 'ඒ වෙනුවට දී ඇති පිටුවට සබැඳෙන පිටුවල වෙනස්වීම්  පෙන්වන්න',
 
 # Upload
-'upload' => 'ගොනුවක් උඩුගත කරන්න',
+'upload' => 'ගොනුවක් උඩුගතකරන්න',
 'uploadbtn' => 'ගොනුව උඩුගත කරන්න',
 'reuploaddesc' => 'උඩුගත කිරීම අත්හැරදමා උඩුගත කිරීම් ආකෘති පත්‍රය වෙත යන්න',
 'upload-tryagain' => 'වෙනස් කරන ලද ගොනු විස්තරය ඉදිරිපත් කරන්න',
index 75f5ce3..1ad27c8 100644 (file)
@@ -1007,7 +1007,7 @@ Môžete [[Special:Search/{{PAGENAME}}|vyhľadávať názov tejto stránky]] v o
 'noarticletext-nopermission' => 'Táto stránka momentálne neobsahuje žiadny text.
 Môžete [[Special:Search/{{PAGENAME}}|hľadať názov tejto stránky]] v texte iných stránok
 alebo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hľadať v súvisiacich záznamoch]</span>, ale nemáte oprávnenie túto stránku vytvoriť.',
-'missing-revision' => 'Revízia #$1 stránky s názvom „{{PAGENAME}}“ neexistuje.
+'missing-revision' => 'Revízia #$1 stránky s názvom „{{FULLPAGENAME}}“ neexistuje.
 
 Pravdepodobne ste nasledovali zastaraný odkaz na historickú verziu stránky, ktorá bola medzičasom odstránená.
 Podrobnosti nájdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zázname zmazaní].',
@@ -1232,8 +1232,7 @@ Ako správca si môžete tento rozdiel zobraziť; podrobnosti môžete nájsť v
 'revdelete-no-file' => 'Uvedený súbor neexistuje.',
 'revdelete-show-file-confirm' => 'Ste si istý, že chcete zobraziť zmazanú revíziu súboru „<nowiki>$1</nowiki>“ z $2 $3?',
 'revdelete-show-file-submit' => 'Áno',
-'revdelete-selected' => "'''{{PLURAL:$2|Vybraná jedna revízia|Vybrané $2 revízie|Vybraných $2 revízií}} z [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Vybraná udalosť záznamu|Vybrané udalosti záznamu}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Vybraná udalosť záznamu|Vybrané udalosti záznamu}}:',
 'revdelete-confirm' => 'Prosím, potvrďte, že to naozaj chcete vykonať, rozumiete následkom a že to robíte v súlade s [[{{MediaWiki:Policy-url}}|politikou]].',
 'revdelete-suppress-text' => "Zatajenie by sa malo používať '''výlučne''' v nasledovných prípadoch:
 * Potenciálne hanlivé informácie
index f670c63..b137f46 100644 (file)
@@ -927,7 +927,7 @@ Da bi stran ustvarili, vnesite v spodnji obrazec besedilo
 'noarticletext' => 'Na tej strani ni trenutno nobenega besedila. Naslov strani lahko poskusite [[Special:Search/{{PAGENAME}}|poiskati]] na drugih straneh, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} v dnevniških zapisih] ali pa [{{fullurl:{{FULLPAGENAME}}|action=edit}} stran uredite]</span>.',
 'noarticletext-nopermission' => 'Na strani trenutno ni nobenega besedila.
 Lahko poskusite [[Special:Search/{{PAGENAME}}|poiskati naslov strani]] na drugih straneh ali <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} v povezanih dnevniških zapisih]</span>, vendar za ustvarjanje strani nimate zadostnih dovoljenj.',
-'missing-revision' => 'Redakcija št. $1 strani »{{PAGENAME}}« ne obstaja.
+'missing-revision' => 'Redakcija št. $1 strani »{{FULLPAGENAME}}« ne obstaja.
 
 Po navadi se to zgodi, ko sledite zastareli povezavi na zgodovino strani, ki jo je nekdo izbrisal.
 Podrobnosti lahko najdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dnevniku brisanja].',
@@ -1160,8 +1160,9 @@ To redakcijo si lahko ogledate; podrobnosti lahko najdete v [{{fullurl:{{#Specia
 'revdelete-no-file' => 'Navedena datoteka ne obstaja.',
 'revdelete-show-file-confirm' => 'Ali ste prepričani da si želite ogledati izbrisano verzijo datoteke "<nowiki>$1</nowiki>" od $2 ob $3?',
 'revdelete-show-file-submit' => 'Da',
-'revdelete-selected' => "'''{{PLURAL:$2|Izbrana redakcija|Izbrani redakciji|Izbrane redakcije}} strani [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Izbran dnevniški dogodek|Izbrana dnevniška dogodka|Izbrani dnevniški dogodki}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Izbrana redakcija|Izbrani redakciji|Izbrane redakcije}} [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Izbrana redakcija|Izbrani redakciji|Izbrane redakcije}} datoteke [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Izbran dnevniški dogodek|Izbrana dnevniška dogodka|Izbrani dnevniški dogodki}}:',
 'revdelete-text-text' => 'Izbrisane redakcije bodo še vedno prikazane v zgodovini strani, vendar bodo deli njihovih vsebin nedostopni javnosti.',
 'revdelete-text-file' => 'Izbrisane različice datoteke bodo še vedno prikazane v zgodovini datoteke, vendar bodo deli njihovih vsebin nedostopni javnosti.',
 'logdelete-text' => 'Izbrisani dnevniški vnosi bodo še vedno prikazani v dnevnikih, vendar bodo deli njihovih vsebin nedostopni javnosti.',
index 634634b..56d1d3e 100644 (file)
@@ -659,8 +659,7 @@ Administratorn kinna se eensahn; Details stiehn eim [{{fullurl:{{#Special:Log}}/
 'revdelete-nooldid-text' => 'Du host entweder kenne Version oagegahn, uff de diese Aksjonn ausgefiehrt waan sull, de gewählte Version ies ne vorhanden oder du versichst, de aktuelle Version zu entferna.',
 'revdelete-no-file' => 'De oagegeahne Datei existiert ne.',
 'revdelete-show-file-submit' => 'Ju',
-'revdelete-selected' => "'''{{PLURAL:$2|Ausgewählte Version|Ausgewählte Versionen}} vu [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Ausgewählter Logbucheintrag|Ausgewählte Logbucheinträge}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Ausgewählter Logbucheintrag|Ausgewählte Logbucheinträge}}:',
 'revdelete-legend' => 'Setza der Sichtbarkeits-Einschränkunga',
 'revdelete-hide-text' => 'Text dar Version verstecka',
 'revdelete-hide-image' => 'Bildinhalt verstecka',
index eb7a959..95735f2 100644 (file)
@@ -874,7 +874,7 @@ Ju mund [[Special:Search/{{PAGENAME}}|ta kërkoni këtë titull]] në faqe tjera
 ose [{{fullurl:{{FULLPAGENAME}}|action=edit}} të redaktoni këtë faqe]</span>.',
 'noarticletext-nopermission' => 'Për momentin faqja e kërkuar është bosh.
 Ju mund të [[Special:Search/{{PAGENAME}}|kërkoni këtë titiull]] në faqet e tjera, ose të <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} këtkoni regjistrat e ngjashëm]</span>, por ju nuk mundeni ta krijoni këtë faqe.',
-'missing-revision' => 'Inspektimi #$1 i faqes me emrin "{{PAGENAME}}" nuk ekziston.
+'missing-revision' => 'Inspektimi #$1 i faqes me emrin "{{FULLPAGENAME}}" nuk ekziston.
 
 Kjo zakonisht shkaktuar duke ndjekur një lidhje të vjetër tek një faqe që është fshirë. Hollësitë mund të gjenden në [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} regjistrin e fshirjeve].',
 'userpage-userdoesnotexist' => 'Llogaria e përdoruesit "<nowiki>$1</nowiki>" nuk është e regjistruar. 
@@ -1084,8 +1084,7 @@ Ju mund ta shikoni këtë ndryshim; detajet mund të gjenden te [{{fullurl:{{#Sp
 'revdelete-no-file' => 'Skeda e dhënë nuk ekziston.',
 'revdelete-show-file-confirm' => 'Jeni i/e sigurt se dëshironi të shikoni një version të grisur të skedës "<nowiki>$1</nowiki>" nga $2 tek $3?',
 'revdelete-show-file-submit' => 'Po',
-'revdelete-selected' => "'''{{PLURAL:$2|Versioni i zgjedhur i|Versionet e zgjedhura të}} [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Veprimi i zgjedhur në regjistër|Veprimet e zgjedhura në regjistër}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Veprimi i zgjedhur në regjistër|Veprimet e zgjedhura në regjistër}}:',
 'revdelete-confirm' => 'Ju lutem konfirmoni që keni ndër mënd ta bëni këtë, që i kuptoni pasojat, dhe që ju po veproni në përputhje me [[{{MediaWiki:Policy-url}}|politiken]].',
 'revdelete-suppress-text' => "Shuarje duhet'''vetëm'''të përdoret për rastet e mëposhtme: 
  * Potencialisht e informacionit shpifës 
index 4b3e87b..d221d7b 100644 (file)
@@ -842,6 +842,7 @@ $2',
 'gotaccountlink' => 'Пријава',
 'userlogin-resetlink' => 'Заборавили сте податке за пријаву?',
 'userlogin-resetpassword-link' => 'Заборавили сте лозинку?',
+'userlogin-helplink2' => 'Помоћ при пријављивању',
 'userlogin-loggedin' => 'Већ сте пријављени као {{GENDER:$1|$1}}.
 Користите доњи образац да бисте се пријавили као други корисник.',
 'userlogin-createanother' => 'Отвори још један налог',
@@ -1113,7 +1114,7 @@ $2
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} претражити сродне извештаје] или [{{fullurl:{{FULLPAGENAME}}|action=edit}} уредити страницу]</span>.',
 'noarticletext-nopermission' => 'На овој страници тренутно нема садржаја.
 Можете [[Special:Search/{{PAGENAME}}|потражити овај наслов]] на другим страницама или <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} претражити сродне дневнике]</span>, али немате дозволу да направите ову страницу.',
-'missing-revision' => 'Не могу да пронађем измену бр. $1 на страници под називом „{{PAGENAME}}“.
+'missing-revision' => 'Не могу да пронађем измену бр. $1 на страници под називом „{{FULLPAGENAME}}“.
 
 Ово се обично дешава када пратите застарелу везу до странице која је обрисана.
 Више информација можете пронаћи у [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневнику брисања].',
@@ -1347,8 +1348,7 @@ $2
 'revdelete-no-file' => 'Тражена датотека не постоји.',
 'revdelete-show-file-confirm' => 'Желите ли да видите обрисану измену датотеке „<nowiki>$1</nowiki>“ од $2; $3?',
 'revdelete-show-file-submit' => 'Да',
-'revdelete-selected' => "'''{{PLURAL:$2|Изабрана измена|Изабране измене}} странице [[:$1]]'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Изабрана ставка у историји|Изабране ставке у историји}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Изабрана ставка у историји|Изабране ставке у историји}}:',
 'revdelete-confirm' => 'Потврдите да намеравате ово урадити, да разумете последице и да то чините у складу с [[{{MediaWiki:Policy-url}}|правилима]].',
 'revdelete-suppress-text' => "Сакривање измена би требало користити '''само''' у следећим случајевима:
 * Злонамерни или погрдни подаци
index f30eb87..02676d0 100644 (file)
@@ -990,7 +990,7 @@ Možete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranic
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti srodne izveštaje] ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti stranicu]</span>.',
 'noarticletext-nopermission' => 'Na ovoj stranici trenutno nema sadržaja.
 Možete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama ili <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti srodne dnevnike]</span>, ali nemate dozvolu da napravite ovu stranicu.',
-'missing-revision' => 'Ne mogu da pronađem izmenu br. $1 na stranici pod nazivom „{{PAGENAME}}“.
+'missing-revision' => 'Ne mogu da pronađem izmenu br. $1 na stranici pod nazivom „{{FULLPAGENAME}}“.
 
 Ovo se obično dešava kada pratite zastarelu vezu do stranice koja je obrisana.
 Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dnevniku brisanja].',
@@ -1223,8 +1223,7 @@ Ipak možete da vidite ovu razliku; više detalja možete naći u [{{fullurl:{{#
 'revdelete-no-file' => 'Tražena datoteka ne postoji.',
 'revdelete-show-file-confirm' => 'Želite li da vidite obrisanu izmenu datoteke „<nowiki>$1</nowiki>“ od $2; $3?',
 'revdelete-show-file-submit' => 'Da',
-'revdelete-selected' => "'''{{PLURAL:$2|Izabrana izmena|Izabrane izmene}} stranice [[:$1]]'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:',
 'revdelete-confirm' => 'Potvrdite da nameravate ovo uraditi, da razumete posledice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Sakrivanje izmena bi trebalo koristiti '''samo''' u sledećim slučajevima:
 * Zlonamerni ili pogrdni podaci
index 9b54756..1a857a5 100644 (file)
@@ -829,8 +829,7 @@ Du koast dissen Versionsunnerskeed bekiekje, wan du wolt. Details fiende sik in
 'revdelete-no-file' => 'Ju anroate Doatäi bestoant nit.',
 'revdelete-show-file-confirm' => 'Bäst du sicher, dät du ju läskede Version fon ju Doatäi „<nowiki>$1</nowiki>“ fon dän $2 uum $3 Uure bekiekje wolt?',
 'revdelete-show-file-submit' => 'Jee',
-'revdelete-selected' => "'''{{PLURAL:$2|Uutwäälde Version|Uutwäälde Versione}} fon [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Uutwäälden Logboukiendraach|Uutwäälde Logboukiendraage}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Uutwäälden Logboukiendraach|Uutwäälde Logboukiendraage}}:',
 'revdelete-confirm' => 'Bestäätigje, dät du dit wuddelk dwo wolt, dät du do Konsequenze ferstoanst un dät in Uureenstimmenge mäd do [[{{MediaWiki:Policy-url}}|Gjuchtlienjen]] dääst.',
 'revdelete-suppress-text' => "Unnerdrukkengen skuulen '''bloot''' in do foulgjende Fälle foarnuumen waide:
 * Uunpaasende persöönelke Informatione
index c1b56c2..6a81b74 100644 (file)
@@ -900,8 +900,7 @@ Salaku kuncen, mun perlu, anjeun bisa kénéh [$1 nempo bédana].",
 'revdelete-no-file' => 'Berkas anu ditujul teu kapanggih.',
 'revdelete-show-file-confirm' => 'Anjeun yakin rék nempo révisi anu geus dihapus dina koropak "<nowiki>$1</nowiki>" ti $2 nepi ka $3?',
 'revdelete-show-file-submit' => 'Enya',
-'revdelete-selected' => "'''{{PLURAL:$2|Révisi pilihan|Révisi pilihan}} pikeun '''$1''''''",
-'logdelete-selected' => "'''{{PLURAL:$1|pilihan keur log|pilihan keur log}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|pilihan keur log|pilihan keur log}}:',
 'revdelete-confirm' => 'Mangga geura konfirmasi yen Anjeun gaduh maksad pikeun ngalakukeun hal ieu, paham kana konsekwensina, tur nu dilakukeun ieu teh luyu sareng [[{{MediaWiki:Policy-url}}|kawijakanana]]',
 'revdelete-suppress-text' => "Nyumputkeun revisi '''ukur''' bisa digunakeun keur kasus-kasus di handap ieu:
 * Informasi nu boga potensi mitenah
index 4de2191..3b4c6ef 100644 (file)
@@ -1049,7 +1049,7 @@ Du kan [[Special:Search/{{PAGENAME}}|söka efter denna sidtitel]] på andra sido
 'noarticletext-nopermission' => 'Det finns för tillfället ingen text på denna sida.
 Du kan [[Special:Search/{{PAGENAME}}|söka efter denna sidas titel]] på andra sidor,
 eller <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} söka i relaterade loggar]</span> men du har inte behörighet att skapa sidan.',
-'missing-revision' => 'Revisionen #$1 av sidan med namnet "{{PAGENAME}}" finns inte.
+'missing-revision' => 'Revisionen #$1 av sidan med namnet "{{FULLPAGENAME}}" finns inte.
 
 Detta orsakas vanligen av efter en gammal historiklänk till en sida som har raderats.
 Detaljer kan hittas i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} raderingsloggen].',
@@ -1285,8 +1285,9 @@ eller så försöker du gömma den senaste versionen av sidan.',
 'revdelete-no-file' => 'Den specificerade filen finns inte.',
 'revdelete-show-file-confirm' => 'Är du säker på att du vill visa en raderad version av filen "<nowiki>$1</nowiki>" från den $2 klockan $3?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Vald version|Valda versioner}} av [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Vald loggåtgärd|Valda loggåtgärder}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Vald version|Valda versioner}} av [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Vald filversion|Valda filversioner}} av [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|Vald loggåtgärd|Valda loggåtgärder}}:',
 'revdelete-text-text' => 'Raderade sidversioner kommer fortfarande synas i sidans historik, men delar av innehållet kommer inte att bli tillgängligt offentligt.',
 'revdelete-text-file' => 'Raderade filversioner kommer fortfarande synas i filens historik, men delar av innehållet kommer inte att bli tillgängligt offentligt.',
 'logdelete-text' => 'Raderade logghändelser kommer fortfarande synas i loggarna, men delar av innehållet kommer inte att bli tillgängligt offentligt.',
@@ -2155,6 +2156,11 @@ Kanske vill du redigera beskrivningen på dess [$2 filbeskrivningssida] där.',
 # List redirects
 'listredirects' => 'Lista över omdirigeringar',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lista över filer med dubbletter',
+'listduplicatedfiles-summary' => 'Detta är en lista över filer där den senaste versionen av filen är en dubblett av den senaste versionen av någon annan fil. Endast lokala filer behandlas.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] har [[$3|{{PLURAL:$2|en dubblett|$2 dubbletter}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Oanvända mallar',
 'unusedtemplatestext' => 'Denna sida listar alla sidor i {{ns:template}}-namnrymden som inte inkluderas på någon annan sida.
index 0f03506..d2b4b6c 100644 (file)
@@ -974,8 +974,7 @@ Unaweza masasisho; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delet
 'revdelete-no-file' => 'Faili ulilotaja halipatikani.',
 'revdelete-show-file-confirm' => 'Ni kweli kwamba unataka kulitazama pitio lililofutwa la faili linaloitwa "<nowiki>$1</nowiki>" la tarehe $2 na saa $3?',
 'revdelete-show-file-submit' => 'Ndiyo',
-'revdelete-selected' => "'''{{PLURAL:$2|Pitio lililoteuliwa|Mapitio yaliyoteuliwa}} ya [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Tukio la kumbukumbu lililoteuliwa|Matukio ya kumbukumbu yaliyoteuliwa}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Tukio la kumbukumbu lililoteuliwa|Matukio ya kumbukumbu yaliyoteuliwa}}:',
 'revdelete-confirm' => 'Tafadhali uthibitishe kwamba unataka kufanya hivyo, pamoja na kwamba unaelewa matokeo yake, na unafanya hivyo kutokana na [[{{MediaWiki:Policy-url}}|sera yetu]].',
 'revdelete-suppress-text' => "Kuficha kunaruhisiwa '''tu''' wakati hizo:
 * Taarifa zinazowezekana kwamba ni za kukashifu
index 38d85b5..4e08463 100644 (file)
@@ -880,8 +880,7 @@ Powody wyćepańo idźe znejść we [{{fullurl:{{#Special:Log}}/suppress|page={{
 'revdelete-no-file' => 'Ńy mo tygo plika.',
 'revdelete-show-file-confirm' => 'Jeżeś echt pewny co chcesz uobejzdrzeć wyćepano wersyjo plika „<nowiki>$1</nowiki>” s $2 $3?',
 'revdelete-show-file-submit' => 'Ja',
-'revdelete-selected' => "'''{{PLURAL:$2|Wybrano wersyjo|Wybrane wersyje}} zajty [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Wybrane zdarzyńy ze rejeru|Wybrane zdarzyńa ze rejeru}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Wybrane zdarzyńy ze rejeru|Wybrane zdarzyńa ze rejeru}}:',
 'revdelete-legend' => 'Naštaluj uograńičyńo lo wersyji:',
 'revdelete-hide-text' => 'Schrůń tekst wersyji',
 'revdelete-hide-image' => 'Schrůń zawartość plika',
index dc1338e..adf762e 100644 (file)
@@ -756,7 +756,7 @@ $1 எனும் பயனரையோ வேறு [[{{MediaWiki:Grouppage-sy
 'noarticletext-nopermission' => 'தற்பொழுது இப்பக்கத்தில் உரை எதுவும் இல்லை.
 நீங்கள் [[Special:Search/{{PAGENAME}}|பக்கத் தலைப்பை வைத்து]] அல்லது மற்ற பக்கங்களில்,
 அல்லது <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} அல்லது தேடுதல் தொடர்பான பதிவுகளில் தேடலாம்.]</span>, ஆனால் இந்தப் பக்கத்தை உருவாக்க அனுமதியில்லை.',
-'missing-revision' => "இந்த பரிசீலனை # $1  '' {{PAGENAME}}' பெயருள்ள பக்கத்தின் இல்லை.!N வேடிக்கையானN!இது தான் வழக்கமாக ஏற்பட்டிருக்கலாம் நீக்கப்பட்டுள்ளது பக்கத்திற்கு outdated வரலாறு இணைப்பை தொடர்ந்து.
+'missing-revision' => "இந்த பரிசீலனை # $1  '' {{FULLPAGENAME}}' பெயருள்ள பக்கத்தின் இல்லை.!N வேடிக்கையானN!இது தான் வழக்கமாக ஏற்பட்டிருக்கலாம் நீக்கப்பட்டுள்ளது பக்கத்திற்கு outdated வரலாறு இணைப்பை தொடர்ந்து.
 விவரங்கள் முடியும் கண்டறிய, [{{fullurl: {{# சிறப்பு: குறிப்பேடு}} / delete|page = {{FULLPAGENAMEE}}}} நீக்குதல் குறிப்பேடு].",
 'userpage-userdoesnotexist' => '"<nowiki>$1</nowiki>" என்றக் கணக்கு இன்னமும் பதிவுச் செய்யப்படவில்லை. இதை உருவாக்க/தொகுக்க வேண்டுமா என்பதை உறுதிப்படுத்தவும்.',
 'userpage-userdoesnotexist-view' => 'பயனர் கணக்கு "$1" பதியப்படவில்லை',
@@ -971,8 +971,7 @@ $1 எனும் பயனரையோ வேறு [[{{MediaWiki:Grouppage-sy
 'revdelete-no-file' => 'தாங்கள் குறிப்பிட்ட கோப்புக்கள் இங்கில்லை.',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" கோப்பின் $2-தேதி,  $3-நேரத்தில் நீக்கப்பட்ட திருத்தத்தை தாங்கள் காணவேண்டுமா ?',
 'revdelete-show-file-submit' => 'ஆம்',
-'revdelete-selected' => "'''[[:$1]] பக்கத்தின் தெரிவுச் செய்யப்பட்ட {{PLURAL:$2|திருத்தம்|திருத்தங்கள்}}:'''",
-'logdelete-selected' => "'''தெரிவு செய்யப்பட்ட பதிகை {{PLURAL:$1|நிகழ்வு|நிகழ்வுகள்}}:'''",
+'logdelete-selected' => 'தெரிவு செய்யப்பட்ட பதிகை {{PLURAL:$1|நிகழ்வு|நிகழ்வுகள்}}:',
 'revdelete-confirm' => 'நீங்கள் கண்டிப்பாக இதைச் செய்ய விரும்புகிறீர்கள் என்பதையும்,  இதன் விளைவுகளை புரிந்துகொண்டிருக்கின்றீர்கள் என்பதையும், மேலும் நீங்கள் [[{{MediaWiki:Policy-url}}|செயல் திட்டம்]] படி செய்கிறீர்கள் என்பதையும் உறுதிசெயுங்கள்.',
 'revdelete-suppress-text' => "ஒடுக்கப்படுவது கீழ்காணும் '''காரணங்களுக்காக''' மட்டுமே செய்யப்படும்.
 *அவதூறான தீங்கு விளைவிக்கக்கூடிய தகவல்
index 7a6e429..5c4305b 100644 (file)
@@ -874,7 +874,7 @@ $2
 లేదా [{{fullurl:{{FULLPAGENAME}}|action=edit}} ఈ పేజీని మార్చవచ్చు]</span>.',
 'noarticletext-nopermission' => 'ప్రస్తుతం ఈ పేజీలో పాఠ్యమేమీ లేదు.
 మీరు ఇతర పేజీలలో [[Special:Search/{{PAGENAME}}|ఈ పేజీ శీర్షిక కోసం వెతకవచ్చు]], లేదా <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} సంబంధిత చిట్టాలలో వెతకవచ్చు]</span>, కానీ ఈ పేజీని సృష్టించడానికి మీకు అనుమతి లేదు.',
-'missing-revision' => '"{{PAGENAME}}" అనే పేజీ యొక్క కూర్పు #$1 ఉనికిలో లేదు. సాధారణంగా ఏదైనా తొలగించబడిన పేజీ యొక్క కాలం చెల్లిన చరితం లింకును నొక్కినపుడు ఇది జరుగుతుంది. వివరాలు [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు లాగ్] లో దొరుకుతాయి.',
+'missing-revision' => '"{{FULLPAGENAME}}" అనే పేజీ యొక్క కూర్పు #$1 ఉనికిలో లేదు. సాధారణంగా ఏదైనా తొలగించబడిన పేజీ యొక్క కాలం చెల్లిన చరితం లింకును నొక్కినపుడు ఇది జరుగుతుంది. వివరాలు [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు లాగ్] లో దొరుకుతాయి.',
 'userpage-userdoesnotexist' => '"$1" అనే వాడుకరి ఖాతా నమోదయిలేదు. మీరు ఈ పేజీని సృష్టించాలని/సరిదిద్దాలని అనుకుంటున్నారేమో చూడండి.',
 'userpage-userdoesnotexist-view' => 'వాడుకరి ఖాతా "$1" నమోదుకాలేదు.',
 'blocked-notice-logextract' => 'ప్రస్తుతం ఈ వాడుకరిని నిరోధించారు.
@@ -1098,8 +1098,7 @@ $3 ఇచ్చిన కారణం: ''$2''",
 'revdelete-no-file' => 'పేర్కొన్న ఫైలు ఉనికిలో లేదు.',
 'revdelete-show-file-confirm' => 'మీరు నిజంగానే "<nowiki>$1</nowiki>"  ఫైలు యొక్క $2 $3 నాటి తొలగించిన కూర్పుని చూడాలనుకుంటున్నారా?',
 'revdelete-show-file-submit' => 'అవును',
-'revdelete-selected' => '<strong>[[:$1]] యొక్క {{PLURAL:$2|ఎంచుకున్న కూర్పు|ఎంచుకున్న కూర్పులు}}:</strong>',
-'logdelete-selected' => '<strong>{{PLURAL:$1|ఎంచుకున్న చిట్టా ఘటన|ఎంచుకున్న చిట్టా ఘటనలు}}:</strong>',
+'logdelete-selected' => '{{PLURAL:$1|ఎంచుకున్న చిట్టా ఘటన|ఎంచుకున్న చిట్టా ఘటనలు}}:',
 'revdelete-text-text' => 'తొలగించిన కూర్పులు పేజీ చరిత్రలో కనిపిస్తూనే ఉంటాయి. కానీ వాటి విషయసంగ్రహంలోని భాగాలు అందరికీ కనిపించవు.',
 'revdelete-text-file' => 'తొలగించిన ఫైలు కూర్పులు పేజీ చరిత్రలో కనిపిస్తూనే ఉంటాయి. కానీ వాటి విషయసంగ్రహంలోని భాగాలు అందరికీ కనిపించవు.',
 'logdelete-text' => 'తొలగించిన ఘటనలు లాగ్‍లో కనిపిస్తూనే ఉంటాయి. కానీ వాటి విషయసంగ్రహంలోని భాగాలు అందరికీ కనిపించవు.',
index 4ad46ab..2999a74 100644 (file)
@@ -236,7 +236,6 @@ $messages = array(
 'disclaimers' => 'Avisu legál',
 'disclaimerpage' => 'Project:Avisu legál',
 'edithelp' => 'Ajuda kona-ba edita',
-'helppage' => 'Help:Konteúdu',
 'mainpage' => 'Pájina Mahuluk',
 'mainpage-description' => 'Pájina Mahuluk',
 'portal' => 'Portál komunidade nian',
index adeff6b..b6cb81d 100644 (file)
@@ -754,8 +754,7 @@ $1',
 'revisiondelete' => 'Нусхаҳои ҳазф/эҳёӣ',
 'revdelete-nooldid-title' => 'Нусхаи мақсади номӯътабар',
 'revdelete-nooldid-text' => 'Шумо ин ё он нусхаи(ҳои) мақсадро барои иҷрои ин амал мушаххас накардаед, нусхаи мушаххасшуда вуҷуд надорад, ё  шумо дар ҳоли кӯшиши пинҳон кардани нусхаи кунуниаш ҳастед.',
-'revdelete-selected' => "'''{{PLURAL:$2|Нусхаи интихобшуда|Нусхаҳои интихобшуда}} аз [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Гузориши маврид интихобшуда|Гузориши мавориди интихобшуда}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Гузориши маврид интихобшуда|Гузориши мавориди интихобшуда}}:',
 'revdelete-legend' => 'Танзими маҳдудиятҳои падидорӣ',
 'revdelete-hide-text' => 'Пинҳон кардани нусхаи матн',
 'revdelete-hide-image' => 'Пинҳон кардани мӯҳтавиёти парванда',
index 406b33e..58bcc6c 100644 (file)
@@ -610,8 +610,7 @@ Sahifahoi çadidī aloqamandro metavoned [[Special:Search|dar viki]] çustuçū
 'revisiondelete' => 'Nusxahoi hazf/ehjoī',
 'revdelete-nooldid-title' => "Nusxai maqsadi nomū'tabar",
 'revdelete-nooldid-text' => 'Şumo in jo on nusxai(hoi) maqsadro baroi içroi in amal muşaxxas nakardaed, nusxai muşaxxasşuda vuçud nadorad, jo  şumo dar holi kūşişi pinhon kardani nusxai kununiaş hasted.',
-'revdelete-selected' => "'''{{PLURAL:$2|Nusxai intixobşuda|Nusxahoi intixobşuda}} az [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Guzorişi mavrid intixobşuda|Guzorişi mavoridi intixobşuda}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Guzorişi mavrid intixobşuda|Guzorişi mavoridi intixobşuda}}:',
 'revdelete-legend' => 'Tanzimi mahdudijathoi padidorī',
 'revdelete-hide-text' => 'Pinhon kardani nusxai matn',
 'revdelete-hide-image' => 'Pinhon kardani mūhtavijoti parvanda',
index 40fc31c..ae5aea9 100644 (file)
@@ -905,7 +905,7 @@ $2
 คุณสามารถ[[Special:Search/{{PAGENAME}}|ค้นหาชื่อหน้านี้]]ในหน้าอื่น หรือ<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ค้นหาปูมที่เกี่ยวข้อง] หรือ[{{fullurl:{{FULLPAGENAME}}|action=edit}} แก้ไขหน้านี้]</span>',
 'noarticletext-nopermission' => 'ปัจจุบันไม่มีเนื้อหาในหน้านี้
 คุณสามารถ[[Special:Search/{{PAGENAME}}|ค้นหาชื่อหน้านี้]]ในหน้าอื่น หรือ<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ค้นหาปูมที่เกี่ยวข้อง]</span> แต่คุณไม่มีสิทธิสร้างหน้านี้',
-'missing-revision' => 'ไม่มีรุ่น #$1 ของหน้าชื่อ "{{PAGENAME}}" 
+'missing-revision' => 'ไม่มีรุ่น #$1 ของหน้าชื่อ "{{FULLPAGENAME}}" 
 
 โดยปกติเกิดจากการเข้าลิงก์ประวัติเก่าของหน้าที่ถูกลบไปแล้ว
 ดูรายละเอียดได้ที่[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ปูมการลบ]',
@@ -1127,8 +1127,7 @@ $2
 'revdelete-no-file' => 'ไม่มีไฟล์ที่ระบุ',
 'revdelete-show-file-confirm' => 'คุณแน่ใจที่จะดูรุ่นที่ถูกลบของไฟล์ "<nowiki>$1</nowiki>" เมื่อวันที่ $2 เวลา $3 หรือไม่',
 'revdelete-show-file-submit' => 'ใช่',
-'revdelete-selected' => "'''{{PLURAL:$2|รุ่นการปรับปรุงที่ถูกเลือก|รุ่นการปรับปรุงที่ถูกเลือก}}ของ [[:$1]] :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|เหตุการณ์ปูมที่เลือก|เหตุการณ์ปูมที่เลือก}} :'''",
+'logdelete-selected' => '{{PLURAL:$1|เหตุการณ์ปูมที่เลือก|เหตุการณ์ปูมที่เลือก}} :',
 'revdelete-text-text' => 'รุ่นที่ถูกลบจะยังปรากฏในประวัติหน้า แต่สาธารณะจะไม่สามารถเข้าถึงเนื้อหาบางส่วนได้',
 'revdelete-text-file' => 'รุ่นที่ถูกลบจะยังปรากฏในประวัติไฟล์ แต่สาธารณะจะไม่สามารถเข้าถึงเนื้อหาบางส่วนได้',
 'logdelete-text' => 'รายการปูมที่ถูกลบจะยังปรากฏในปูม แต่สาธารณะจะไม่สามารถเข้าถึงเนื้อหาบางส่วนได้',
index ef1ba81..f9d0e03 100644 (file)
@@ -817,8 +817,7 @@ Administrator hökmünde bu aratapawudy görüp bilersiňiz; [{{fullurl:{{#Speci
 'revdelete-no-file' => 'Görkezilen faýl ýok.',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" faýlynyň $3, $2 seneli öçürilen wersiýasyny görmek isleýäniňiz çynyňyzmy?',
 'revdelete-show-file-submit' => 'Hawa',
-'revdelete-selected' => "'''[[:$1]] sahypasynyň {{PLURAL:$2|saýlanylan wersiýasy|saýlanylan wersiýalary}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Saýlanylan gündelik wakasy|Saýlanylan gündelik wakalary}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Saýlanylan gündelik wakasy|Saýlanylan gündelik wakalary}}:',
 'revdelete-confirm' => 'Şu işi anyk isleýändigiňizi, ýagny onuň netijelerine düşünýändiňizi we [[{{MediaWiki:Policy-url}}|kadalar boýunça]] amala aşyrýandygyňyzy tassyklamagyňyzy haýyş edýäris.',
 'revdelete-suppress-text' => "Gizlemeklik '''diňe''' aşakdaky ýagdaýlarda ulanylmalydyr:
 * Potensial taýdan töhmetçilikli maglumat
index c63bd5b..6993183 100644 (file)
@@ -478,6 +478,8 @@ Matatagpuan ang isang tala ng mga tamang natatanging pahina sa [[Special:Special
 'databaseerror' => 'Kamalian sa kalipunan ng datos',
 'databaseerror-text' => 'Mayroong kamalian sa pagtanong o pag-query sa database.
 Maaring ipinapahiwatig nito ang depekto o bug sa software.',
+'databaseerror-textcl' => 'May nangyaring depekto sa pag-query ng database.',
+'databaseerror-error' => 'Depekto: $1',
 'laggedslavemode' => "'''Babala:''' Maaaring hindi naglalaman ang pahina ng mga huling dagdag.",
 'readonly' => 'Nakakandado ang kalipunan ng datos',
 'enterlockreason' => 'Maglagay ng dahilan sa pagkakandado, kasama ang taya kung kailan magtatapos ang pagkakandado',
@@ -511,6 +513,7 @@ Maaaring ibinura na ito ng iba.',
 'cannotdelete-title' => 'Hindi maibura ang pahinang "$1"',
 'delete-hook-aborted' => 'Pinigil ng sungkit ang pagbura.
 Walang ibinigay na paliwanag.',
+'no-null-revision' => 'Hindi makalikha ng bagong "null" para sa pahina na "$1"',
 'badtitle' => 'Hindi kanais-nais na pamagat',
 'badtitletext' => 'Ang hiniling na pamagat ng pahina ay hindi katanggap-tanggap, wala, o isang may-maling kawing na pamagat na pangugnayang-wika (interwika) o pangugnayang wiki (interwiki).
 Maaaring naglalaman ito ng isa o higit pang mga panitik (karakter) na hindi maaaring gamitin para sa mga pamagat.',
@@ -523,10 +526,11 @@ Ang mga dato dito ay hindi pa masasariwa sa kasalukuyan.',
 'actionthrottled' => 'Hinadlangan ang gawain',
 'actionthrottledtext' => "Bilang paraang panglaban sa ''spam'', pinigalan kang magawa ang galaw na ito nang maraming ulit sa loob ng maikling panahon, at lumabis ka na sa limitasyong ito.
 Pakisubok na lang ulit pagkaraan ng kaunting mga minuto.",
-'protectedpagetext' => 'Kinandado ang pahinang ito upang mahadlangang ang pagbago.',
+'protectedpagetext' => 'Kinandado ang pahinang ito upang mahadlangang ang pagbago o ibang aksyon.',
 'viewsourcetext' => 'Maaari mong tingnan at kopyahin ang pinagmulan ng pahinang ito:',
 'viewyourtext' => "Matitingnan at makukopya mo ang pinagmulan ng '''mga pagbabago''' papunta sa pahinang ito:",
-'protectedinterface' => "Nagbibigay ang pahinang ito ng tekstong panghangganan (''interface'') para sa sopwer, at ikinandado para maiwasan ang pangaabuso.",
+'protectedinterface' => 'Nagbibigay ang pahinang ito ng tekstong interface para sa software, at ikinandado para maiwasan ang pangaabuso.
+Upang dagdagan o baguhin ang mga salin para sa lahat ng mga wiki, pakigamit ang [//translatewiki.net/ translatewiki.net], ang proyekto para sa lokalisasyon ng MediaWiki.',
 'editinginterface' => "'''Babala:''' Binabago mo ang isang pahinang ginagamit sa pagbibigay ng tekstong panghangganan para sa sopwer.
 Makaaapekto ang mga pagbago sa pahinang ito sa anyo ng hangganang (''interface'') pantagagamit na para sa ibang mga tagagamit sa wiking ito.
 Upang magdagag o magbago ng mga salinwika, isaaalang-alang na lang po ang paggamit ng [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], ang proyekto para sa lokalisasyon ng MediaWiki.",
@@ -537,6 +541,8 @@ $2',
 'customjsprotected' => 'Wala kang pahintulot na baguhin ang pahina ng JavaScript na ito, dahil naglalaman ito ng mga katakdaang pansarili ng ibang tagagamit.',
 'mycustomcssprotected' => 'Wala kang pahintulot na baguhin itong pahinang CSS.',
 'mycustomjsprotected' => 'Wala kang pahintulot na baguhin itong pahinang JavaScript.',
+'myprivateinfoprotected' => 'Wala kang pahintulot na baguhin ang iyong pribadong impormasyon.',
+'mypreferencesprotected' => 'Wala kang pahintulot na baguhin ang iyong mga kagustuhan.',
 'ns-specialprotected' => 'Hindi pwedeng baguhin ang mga natatanging pahina.',
 'titleprotected' => "Nakasanggalang ang pamagat na ito mula sa paglikha ni [[User:$1|$1]].
 Ang ibinigay na dahilan ay ''$2''.",
@@ -546,7 +552,8 @@ Ang tagapangasiwang nagkandado nito ay nag-alok ng ganitong paliwanag: "$3".',
 'invalidtitle-knownnamespace' => 'Hindi katanggap-tanggap na pamagat na may puwang na pampangalang "$2" at tekstong "$3"',
 'invalidtitle-unknownnamespace' => 'Hindi katanggap-tanggap na pamagat na mayroong hindi nalalamang bilang na pampuwang ng pangalan na $1 at tekstong "$2"',
 'exception-nologin' => 'Hindi nakalagda',
-'exception-nologin-text' => 'Ang pahina o kilos na ito ay nangangailangan ng paglagda mo sa wiking ito.',
+'exception-nologin-text' => '[[Natatangi:Paglagda_ng_tagagamit|Mag-login]] upang ma-access ang aksyon o pahinang ito.',
+'exception-nologin-text-manual' => '$1 upang ma-access ang pahina o aksyong ito.',
 
 # Virus scanner
 'virus-badscanner' => "Masamang kompigurasyon: hindi kilalang tagahagilap (iskaner) ng birus: ''$1''",
@@ -554,29 +561,28 @@ Ang tagapangasiwang nagkandado nito ay nag-alok ng ganitong paliwanag: "$3".',
 'virus-unknownscanner' => 'hindi kilalang panlaban sa birus:',
 
 # Login and logout pages
-'logouttext' => "'''Nakaalis ka na sa pagkakalagda.'''
+'logouttext' => '<strong>Nakaalis ka na sa pagkaka-login.</strong>
 
-Maaari kang tumuloy sa paggamit ng {{SITENAME}} nang hindi nakikilala (anonimo), o maaaring kang <span class='plainlinks'>[$1 lumagda/tumala muli]</span> bilang kapareho o ibang tagagamit.
-Tandaan na may ilang pahinang maaaring magpatuloy na nagpapakitang parang nakalagda ka pa rin, hanggang sa linisin mo ang iyong baunang pambasa-basa (''browser cache'').",
+Tandaan na may ilang mga pahina na patuloy na nagpapakita na parang hindi ka naka-login, hanggang alisin mo ang iyong <i>browser cache</i>.',
 'welcomeuser' => 'Mabuhay, $1!',
 'welcomecreation-msg' => 'Nilikha na ang iyong kuwenta.
 Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SITENAME}}]].',
 'yourname' => 'Bansag:',
-'userlogin-yourname' => 'Pangngalan',
-'userlogin-yourname-ph' => 'Ilagay ang iyong Pangalan',
+'userlogin-yourname' => 'Pangalan',
+'userlogin-yourname-ph' => 'Ilagay ang iyong pangalan',
 'createacct-another-username-ph' => 'Ilagay ang Pangalan',
-'yourpassword' => 'Hudyat:',
-'userlogin-yourpassword' => 'Hudyat',
-'userlogin-yourpassword-ph' => 'Ipasok ang iyong hudyat',
+'yourpassword' => 'Password:',
+'userlogin-yourpassword' => 'Password',
+'userlogin-yourpassword-ph' => 'Ipasok ang iyong password',
 'createacct-yourpassword-ph' => 'Ilagay ang hudyat (password)',
-'yourpasswordagain' => 'Hudyat mo uli:',
+'yourpasswordagain' => 'Password mo uli:',
 'createacct-yourpasswordagain' => 'Tiyakin ang hudyat',
 'createacct-yourpasswordagain-ph' => 'Muling ilagay ang hudyat (password)',
 'remembermypassword' => 'Tandaan ang paglagda ko sa kompyuter na ito (pinakamarami na ang $1 {{PLURAL:$1|araw|mga araw}})',
-'userlogin-remembermypassword' => 'Panatilihin akong nakalagda',
+'userlogin-remembermypassword' => 'Panatilihin akong naka-login',
 'userlogin-signwithsecure' => 'Gumamit ng ligtas na koneksyon',
 'yourdomainname' => 'Dominyo mo:',
-'password-change-forbidden' => 'Hindi mo maaaring palitan ang mga hudyat sa wiking ito.',
+'password-change-forbidden' => 'Hindi mo maaaring palitan ang mga password sa wiking ito.',
 'externaldberror' => 'Maaaring may kamalian sa pagpapatotoo ng kalipunan ng mga dato o kaya hindi ka pinahintulutang isapanahon ng iyong panlabas na kuwenta o patnugutan.',
 'login' => 'Lumagda',
 'nav-login-createaccount' => 'Lumagda / lumikha ng kuwenta',
@@ -586,27 +592,38 @@ Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SIT
 'logout' => 'Umalis sa pagkakalagda',
 'userlogout' => 'Umalis sa pagkakalagda',
 'notloggedin' => 'Hindi nakalagda',
-'userlogin-noaccount' => 'Wala ka pa bang kuwenta?',
+'userlogin-noaccount' => 'Wala ka pa bang akawnt?',
 'userlogin-joinproject' => 'Sumali sa {{SITENAME}}',
 'nologin' => 'Wala ka pang kuwenta? $1.',
 'nologinlink' => 'Lumikha ng kuwenta',
 'createaccount' => 'Lumikha ng akawnt',
 'gotaccount' => 'May kuwenta ka na ba? $1.',
 'gotaccountlink' => 'Lumagda',
-'userlogin-resetlink' => 'Nakalimutan mo ang iyong mga detalyeng panglagda?',
-'userlogin-resetpassword-link' => 'Nakalimutan ba ang iyong hudyat (password)?',
+'userlogin-resetlink' => 'Nakalimutan mo ang iyong mga detalyeng pang-login?',
+'userlogin-resetpassword-link' => 'Nakalimutan ba ang iyong password?',
+'userlogin-helplink2' => 'Tulong sa pag-login',
+'userlogin-loggedin' => 'Naka-login ka na bilang {{GENDER:$1|$1}}. Gamitin ang form sa ibaba upang maka-login bilang ibang tagagamit o user.',
 'userlogin-createanother' => 'Lumikha ng iba pang akawnt',
 'createacct-join' => 'Ilagay ang iyong impormasyon sa ibaba.',
 'createacct-another-join' => 'Ilagay ang impormasyon ng bagong akawnt sa ibaba.',
 'createacct-emailrequired' => 'Direksiyong e-liham:',
-'createaccountmail' => 'Gumamit ng pansamantalang walang-piling hudyat at ipadala ito sa direksiyong e-liham na nakasaad sa ibaba',
+'createacct-emailoptional' => 'Email (hindi kailangan)',
+'createacct-email-ph' => 'Ipasok ang iyong email address',
+'createacct-another-email-ph' => 'Ipasok ang email address',
+'createaccountmail' => 'Gumamit ng pansamantalang random na password at ipadala ito sa email na nakasaad sa ibaba',
 'createacct-realname' => 'Tunay na pangalan (maaaring wala)',
 'createaccountreason' => 'Dahilan:',
 'createacct-reason' => 'Dahilan',
 'createacct-reason-ph' => 'Bakit ka gagawa ng isa pang akawnt?',
+'createacct-captcha' => 'Siyasatin ang seguridad',
 'createacct-imgcaptcha-ph' => 'Ilagay ang tekstong makikita sa itaas.',
+'createacct-submit' => 'Likhain ang iyong akawnt',
+'createacct-another-submit' => 'Lumikha ng ibang akawnt',
 'createacct-benefit-heading' => '{{SITENAME}} ay nilikha ng mga taong iyong katulad.',
-'badretype' => 'Hindi magkatugma ang ipinasok mong mga hudyat.',
+'createacct-benefit-body1' => '{{PLURAL:$1|pagbabago|mga pagbabago}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pahina|mga pahina}}',
+'createacct-benefit-body3' => 'kamakailang {{PLURAL:$1|nag-ambag|mga nag-ambag}}',
+'badretype' => 'Hindi magkatugma ang ipinasok mong mga password.',
 'userexists' => 'May gumagamit na ng ipinasok na bansag.
 Pumili po ng ibang pangalan.',
 'loginerror' => 'Kamalian sa paglagda',
@@ -632,39 +649,39 @@ Suriin ang iyong pagbabaybay, o [[Special:UserLogin/signup|lumikha ng bagong kuw
 Pakitingnan ang iyong pagbabaybay.',
 'nouserspecified' => 'Kailangang tukuyin mo ang isang pangalang pantagagamit.',
 'login-userblocked' => 'Hinarang ang tagagamit na ito.  Hindi pinahihintulutan ang paglalagda.',
-'wrongpassword' => 'Mali ang ipinasok na hudyat.
+'wrongpassword' => 'Mali ang ipinasok na password.
 Pakisubok muli.',
-'wrongpasswordempty' => 'Walang laman ang ipinasok na hudyat.
+'wrongpasswordempty' => 'Walang laman ang ipinasok na password.
 Pakisubok muli.',
-'passwordtooshort' => 'Ang mga hudyat ay dapat mayroong {{PLURAL:$1|1 panitik|$1 panitik}} (karakter).',
-'password-name-match' => 'Dapat magkaiba ang hudyat mo sa bansag mo.',
-'password-login-forbidden' => 'Ipinagbabawal ang paggamit ng ganitong pangalan ng tagagamit at hudyat.',
-'mailmypassword' => 'Baguhin ang hudyat',
-'passwordremindertitle' => 'Bagong pansamantalang hudyat para sa {{SITENAME}}',
+'passwordtooshort' => 'Ang mga password ay dapat mayroong {{PLURAL:$1|1 panitik|$1 panitik}} (karakter).',
+'password-name-match' => 'Dapat magkaiba ang password mo sa bansag o username mo.',
+'password-login-forbidden' => 'Ipinagbabawal ang paggamit ng ganitong pangalan ng tagagamit at password.',
+'mailmypassword' => 'Baguhin ang password',
+'passwordremindertitle' => 'Bagong pansamantalang password para sa {{SITENAME}}',
 'passwordremindertext' => 'Mayroong (na maaaring ikaw, mula sa adres ng IP na $1) humiling ng isang bagong
-hudyat para sa {{SITENAME}} ($4). Isang pansamantalang hudyat ang nilikha
+password para sa {{SITENAME}} ($4). Isang pansamantalang password ang nilikha
 para sa tagagamit na "$2" at itinakda sa "$3".  Kung ito ang iyong pakay,
-kailangan mo na ngayong lumagda/tumala at pumili ng isang bagong hudyat.
-Mawawala/magtatapos ang bisa ang pansamantala mong hudyat sa loob ng {{PLURAL:$5|isang araw|$5 araw}}.
+kailangan mo na ngayong mag-login at pumili ng isang bagong password.
+Mawawala/magtatapos ang bisa ang pansamantala mong password sa loob ng {{PLURAL:$5|isang araw|$5 araw}}.
 
-Kung ibang tao ang humiling nito, o kung naalala mo na ang iyong hudyat,
+Kung ibang tao ang humiling nito, o kung naalala mo na ang iyong password,
 at hindi mo na ibig pang baguhin ito, maaari mong huwag pansinin ang mensaheng ito at
-magpatuloy sa paggamit ng iyong lumang hudyat.',
+magpatuloy sa paggamit ng iyong lumang password.',
 'noemail' => 'Walang nakatalang adres ng e-liham para sa tagagamit na "$1".',
 'noemailcreate' => 'Kailangan mong magbigay ng may-bisang direksiyong e-liham',
 'passwordsent' => 'Isang bagong hudyat ang ipinadala sa adres ng e-liham na nakatala para kay "$1".
 Lumagda/Tumala lang po muli pagkaraan mong matanggap ito.',
 'blocked-mailpassword' => 'Hinarangan sa paggawa ng mga pagbabago ang iyong adres ng IP, at kaya hindi rin pinapahintulutang gumamit ng tungkuling makabawi ng hudyat para maiwasan ang pangaabuso.',
-'eauthentsent' => 'Nagpadala ng isang e-liham na pangkompirmasyon doon sa iniharap na direksiyong e-liham.
-Bago magpadala ng iba pang e-liham sa kuwenta, kailangan mong sundin ang mga tagubiling nasa loob ng e-liham, para mapatunayang iyo talaga ang kuwenta.',
-'throttled-mailpassword' => 'Nagpadala na ng isang paalalang panghudyat, nitong huling {{PLURAL:$1|oras|$1 oras}}.
-Para maiwasin ang pangaabuso, isang paalalang panghudyat lang ang ipapadala bawat {{PLURAL:$1|oras|$1 oras}}.',
+'eauthentsent' => 'Nagpadala ng isang email na pangkompirmasyon doon sa tinukoy na email address.
+Bago magpadala ng iba email sa akawnt, kailangan mong sundin ang mga tagubiling nasa loob ng email, para mapatunayang iyo talaga ang akawnt.',
+'throttled-mailpassword' => 'Nagpadala na ng isang paalalang pang-password, nitong huling {{PLURAL:$1|oras|$1 oras}}.
+Para maiwasin ang pangaabuso, isang paalalang pang-password lamang ang ipapadala bawat {{PLURAL:$1|oras|$1 oras}}.',
 'mailerror' => 'Kamalian sa pagpapadala ng liham: $1',
 'acct_creation_throttle_hit' => 'Ang mga panauhin sa wiking ito na gumagamit ng direksiyong IP mo ay nakalikha na ng {{PLURAL:$1|1 kuwenta|$1 kuwenta}} sa loob ng huling araw, na siyang pinakamataas na pinapahintulutan sa loob ng sakop ng panahong ito.
 Bilang kinalabasan, ang mga panauhing gumagamit ng ganitong direksiyong IP ay hindi na muna makakalikha ng anumang karagdagang kuwenta sa ngayon.',
-'emailauthenticated' => 'Napatunayan na ang iyong direksiyong e-liham sa $2 noong $3.',
-'emailnotauthenticated' => 'Hindi pa napapatunayan ang iyong direksiyong e-liham.
-Walang e-liham na ipapadala para sa anumang sumusunod na tampok na kasangkapang-katangian.',
+'emailauthenticated' => 'Napatunayan na ang iyong email address sa $2 noong $3.',
+'emailnotauthenticated' => 'Hindi pa napapatunayan ang iyong email address.
+Walang email na ipapadala para sa anumang sumusunod na mga tampok o features.',
 'noemailprefs' => 'Tumukoy ng isang direksiyong e-liham sa loob ng mga nais mo upang gumana ang mga kasangkapang-katangiang ito.',
 'emailconfirmlink' => 'Pakikompirma ang iyong direksiyong e-liham.',
 'invalidemailaddress' => 'Hindi matatanggap ang direksiyong e-liham na ito dahil tila mayroon itong maling anyo.
@@ -679,56 +696,71 @@ Dapat kang tumala at baguhin ang hudyat mo ngayon.
 
 Maaari mong huwag pansinin ang mensaheng ito, kung mali ang paglikha ng kuwentang ito.',
 'usernamehasherror' => 'Hindi maaaring maglaman ng mga panitik na pantadtad ang pangalan ng tagagamit',
-'login-throttled' => 'Masyadong marami ang ginawa mong kamakailan lang na mga pagsubok sa paglagdang papasok.
-Maghintay po muna bago subukan uli.',
+'login-throttled' => 'Masyadong madami ang kamakailan lamang mong pagsubok sa pag-login.
+Maghintay po muna ng $1 bago subukan uli.',
 'login-abort-generic' => 'Bigo ang paglagda mo - Pinigil',
 'loginlanguagelabel' => 'Wika: $1',
 'suspicious-userlogout' => "Tinanggihan ang inyong kahilingang umalis sa pagkalagda dahil tila ito ay ipinadala ng sirang pambasa-basa o apoderadong pambaon (''caching proxy'')",
+'createacct-another-realname-tip' => 'Hindi kinakailangan ang tunay na pangalan.
+Kung nais mo na ibigay ito, gagamitin ito para sa pagbibigay ng atribusyon para sa kanilang gawa.',
+'pt-login' => 'Mag-login',
+'pt-login-button' => 'Mag-login',
 'pt-createaccount' => 'Lumikha ng akawnt',
 'pt-userlogout' => 'Umalis sa pagkakatala',
 
 # Email sending
 'php-mail-error-unknown' => 'Hindi malamang kamalian sa tungkulin ng liham ng PHP ()',
 'user-mail-no-addy' => 'Sinubukang magpadala ng e-liham na walang tirahan na para sa e-liham.',
+'user-mail-no-body' => 'Sinubukan na magpadala ng email na walang laman o maikling laman.',
 
 # Change password dialog
-'changepassword' => 'Baguhin ang hudyat',
+'changepassword' => 'Baguhin ang password',
 'resetpass_announce' => 'Para sa ganap na pagtala, magtalaga ng panibagong password.',
 'resetpass_text' => '<!-- Magdagdag ng teksto rito -->',
-'resetpass_header' => 'Baguhin ang hudyat ng kuwenta',
-'oldpassword' => 'Lumang hudyat:',
-'newpassword' => 'Bagong hudyat:',
-'retypenew' => 'Ipasok muli ang bagong hudyat:',
-'resetpass_submit' => 'Itakda ang hudyat at lumagda',
-'changepassword-success' => 'Matagumpay na nabago ang iyong hudyat!  Inilalagda ka na ngayon...',
-'resetpass_forbidden' => 'Hindi mababago ang mga hudyat',
+'resetpass_header' => 'Baguhin ang password ng akawnt',
+'oldpassword' => 'Lumang password:',
+'newpassword' => 'Bagong password:',
+'retypenew' => 'Ipasok muli ang bagong password:',
+'resetpass_submit' => 'Itakda ang password at mag-login',
+'changepassword-success' => 'Matagumpay na nabago ang iyong password!',
+'changepassword-throttled' => 'Masyadong madami ang kamakailan lamang mong pagsubok sa pag-login.
+Maghintay po muna ng $1 bago subukan uli.',
+'resetpass_forbidden' => 'Hindi mababago ang mga password',
 'resetpass-no-info' => 'Nakalagda ka dapat para tuwirang mapuntahan ang pahina ito.',
-'resetpass-submit-loggedin' => 'Baguhin ang hudyat',
+'resetpass-submit-loggedin' => 'Baguhin ang password',
 'resetpass-submit-cancel' => 'Kanselahin',
-'resetpass-wrong-oldpass' => 'Hindi tanggap na pansamantala o pangkasalukuyang hudyat.
-Maaaring matagumpay mo nang nabago ang iyong hudyat o nakahiling na ng isang bagong pansamantalang hudyat.',
+'resetpass-wrong-oldpass' => 'Hindi balido na pansamantala o pangkasalukuyang password.
+Maaaring matagumpay mo nang nabago ang iyong password o nakahiling na ng isang bagong pansamantalang password.',
 'resetpass-recycled' => 'Ireset ang iyong password sa pamamagitan ng paggamit ng iba pa maliban sa iyong ginagamit sa kasalukuyan.',
 'resetpass-temp-emailed' => 'Nakapagtala sa pamamagitan ng pansamantalang email code.
 Para sa ganap na pagtatala, magtakda ng panibagong password dito:',
-'resetpass-temp-password' => 'Pansamantalang hudyat:',
-'resetpass-expired-soft' => 'Napaso na ang iyong password at kailangan ireset. Pumili ng bagong password o iklik ang cancel upang i-reset sa ibang pagkakataon.',
+'resetpass-temp-password' => 'Pansamantalang password:',
+'resetpass-abort-generic' => 'Inuurong sa pamamagitan ng isan extensyon ang pagpalit ng password.',
+'resetpass-expired' => 'Paso na ang iyong password. Pakipalit ng bagong password upang maka-login.',
+'resetpass-expired-soft' => 'Napaso na ang iyong password at kailangan i-reset. Pumili ng bagong password o i-klik ang "{{int:resetpass-submit-cancel}}" upang i-reset sa ibang pagkakataon.',
+'resetpass-validity-soft' => 'Hindi matanggap ang iyong password: $1
+
+Pumili ng bagong password ngayon, o i-klik ang "{{int:resetpass-submit-cancel}}" para i-reset ito sa ibang pagkakataon.',
 
 # Special:PasswordReset
-'passwordreset' => 'Muling pagtatakda ng hudyat',
-'passwordreset-legend' => 'Itakdang muli ang hudyat',
-'passwordreset-disabled' => 'Hindi pinagagana sa wiking ito ang muling mga pagtatakda ng hudyat.',
+'passwordreset' => 'Muling pagtatakda ng password',
+'passwordreset-text-one' => 'Ikumpleto ang form na ito upang makatanggap ng pansamantalang password sa pamamagitan ng email.',
+'passwordreset-text-many' => '{{PLURAL:$1|Ipasok sa isa sa mga field upang makatanggap ng isang pansamantalang password sa pamamagitan ng email.}}',
+'passwordreset-legend' => 'Itakdang muli ang password',
+'passwordreset-disabled' => 'Hindi pinagagana sa wiking ito ang muling mga pagtatakda ng password.',
+'passwordreset-emaildisabled' => 'Hindi pinagana ang email features sa wiking ito.',
 'passwordreset-username' => 'Pangalan ng tagagamit:',
 'passwordreset-domain' => 'Nasasakupan:',
 'passwordreset-capture' => 'Tingnan ang lumabas na e-liham?',
 'passwordreset-capture-help' => 'Kapag tsetsekan mo ang kahong ito, ang e-liham (may pansamantalang hudyat) ay ipapakita sa iyo at ipapadala rin sa tagagamit.',
 'passwordreset-email' => 'Direksiyong e-liham:',
 'passwordreset-emailtitle' => 'Mga detalye ng kuwenta sa {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Isang tao (marahil ay ikaw, mula sa direksiyong IP na $1) ang humiling ng isang paalala sa iyong mga detalye ng kuwenta para sa {{SITENAME}} ($4). Ang sumusunod na {{PLURAL:$3|kuwenta ng tagagamit ay|mga kuwenta ng tagagamit ay}} may kaugnayan sa direksiyong e-liham na ito:
+'passwordreset-emailtext-ip' => 'Isang tao (marahil ay ikaw, mula sa IP address na $1) ang humiling ng isang paalala sa iyong mga detalye ng kuwenta para sa {{SITENAME}} ($4). Ang sumusunod na {{PLURAL:$3|akawant ng tagagamit ay|mga akawnt ng tagagamit ay}} may kaugnayan sa email address na ito:
 
 $2
 
-{{PLURAL:$3|Ang pansamantalang hudyat na ito|Ang mga pansamantalang hudyat na ito}} ay mawawalan ng bisa sa loob ng {{PLURAL:$5|isang araw|$5 mga araw}}.
-Dapat kang lumagda at pumili ng isang bagong hudyat ngayon. Kung ibang tao ang gumawa ng kahilingang ito, o kung naalala mo na ang orihinal mong hudyat, at hindi mo na nais palitan ito, maaari mong huwag nang pansinin ang mensaheng ito at magpatuloy sa paggamit ng luma mong hudyat.',
+{{PLURAL:$3|Ang pansamantalang hudyat na ito|Ang mga pansamantalang hudyat na ito}} ay mawawalan ng bisa sa loob ng {{PLURAL:$5|isang araw|$5 araw}}.
+Dapat kang mag-login at pumili ng isang bagong password ngayon. Kung ibang tao ang gumawa ng kahilingang ito, o kung naalala mo na ang orihinal mong password, at hindi mo na nais palitan ito, maaari mong huwag nang pansinin ang mensaheng ito at magpatuloy sa paggamit ng luma mong password.',
 'passwordreset-emailtext-user' => 'Ang tagagamit na si $1 sa {{SITENAME}} ay humiling ng isang paalala ng iyong mga akawnt ng detalye para sa {{SITENAME}}
 ($4). Ang sumusunod na pangtagagamit na {{PLURAL:$3|akawnt ay|mga akawnt ay}} may kaugnayan sa tirahang ito ng e-liham:
 
@@ -737,7 +769,7 @@ $2
 {{PLURAL:$3|Ang pansamantalang hudyat na ito|Ang pansamantalang mga hudyat na ito}} mawawalan ng bias sa loob ng {{PLURAL:$5|isang araw|$5 mga araw}}.
 Dapat kang lumagda at pumili ng isang hudyat ngayon. Kung ibang tao ang gumawa ng kahilingang ito, o kung naalala mo na ang iyong orihinal na hudyat, at hindi mo na nais palitan pa ito, maaari mong huwag nang pansinin ang mensaheng ito at magpatuloy sa paggamit ng iyong lumang hudyat.',
 'passwordreset-emailelement' => 'Pangalan ng tagagamit: $1
-Pansamantalang hudyat: $2',
+Pansamantalang password: $2',
 'passwordreset-emailsent' => 'Naipadala na ang isang e-liham na pampaalala.',
 'passwordreset-emailsent-capture' => 'Naipadala na ang isang e-liham na paalala, na ipinapakita sa ibaba.',
 'passwordreset-emailerror-capture' => 'Nalikha na ang isang e-liham na paalala, na ipinapakita sa ibaba, subalit nabigo ang pagpapadala sa tagagamit: $1',
@@ -750,8 +782,14 @@ Pansamantalang hudyat: $2',
 'changeemail-oldemail' => 'Kasalukuyang direksiyong e-liham:',
 'changeemail-newemail' => 'Bagong direksiyong e-liham:',
 'changeemail-none' => '(wala)',
+'changeemail-password' => 'Ang iyong {{SITENAME}} password:',
 'changeemail-submit' => 'Baguhin ang e-liham',
 'changeemail-cancel' => 'Kanselahin',
+'changeemail-throttled' => 'Masyadong madami ang kamakailan lamang mong pagsubok sa pag-login.
+Maghintay po muna ng $1 bago subukan uli.',
+
+# Special:ResetTokens
+'resettokens' => 'I-reset ang mga token o susi',
 
 # Edit page toolbar
 'bold_sample' => 'Makapal na panitik',
@@ -832,7 +870,7 @@ Maaaring inilipat o ibinura ito habang tinitingnan mo ang pahina.',
 'loginreqtitle' => 'Paglagda/Pagtala Kailangan',
 'loginreqlink' => 'lumagda/tumala',
 'loginreqpagetext' => 'Kailangan mong $1 para matanaw ang ibang mga pahina.',
-'accmailtitle' => 'Ipinadala na ang hudyat.',
+'accmailtitle' => 'Ipinadala na ang password.',
 'accmailtext' => "Ipinadala na sa $2 ang isang hudyat na nilikha ng pagkakataon para kay [[User talk:$1|$1]].  Maaari itong baguhin sa pahinang ''[[Special:ChangePassword|palitan ng hudyat]]'' kapag lumagdang papasok.",
 'newarticle' => '(Bago)',
 'newarticletext' => "Sinundan mo ang isang kawing para sa isang pahinang hindi pa umiiral.
@@ -849,7 +887,7 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} baguhin ang pahinang ito]</span>.',
 'noarticletext-nopermission' => 'Kasalukuyang walang teksto sa pahinang ito.
 Maaari mong [[Special:Search/{{PAGENAME}}|hanapin ang pamagat ng pahinang ito]] sa ibang mga pahina,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa kaugnay na mga talaan]</span>.',
-'missing-revision' => 'Hindi umiiral ang rebisyong #$1 ng pahinang napangalanang "{{PAGENAME}}".
+'missing-revision' => 'Hindi umiiral ang rebisyong #$1 ng pahinang napangalanang "{{FULLPAGENAME}}".
 
 Karaniwang itong dulot ng pagsunod sa isang wala na sa panahong kawing ng kasaysayan na papunta sa isang pahinang nabura na.
 Matatagpuan ang mga detalye sa loob ng [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan ng pagbura].',
@@ -961,6 +999,7 @@ Walang ibinigay na paliwanag.',
 Tila binura na ito.',
 'edit-conflict' => 'Alitan sa pagbabago.',
 'edit-no-change' => 'Binalewala ang pagbabago mo, dahil walang pagbabagong ginawa sa teksto.',
+'postedit-confirmation' => 'Naitala na ang iyong pagbabago.',
 'edit-already-exists' => 'Hindi makalikha ng isang bagong pahina.
 Umiiral na ito.',
 'defaultmessagetext' => 'Nakatakdang teksto ng mensahe',
@@ -1075,7 +1114,6 @@ Makikita mo ang pagkakaibang ito; matatagpuan ang mga detalye sa [{{fullurl:{{#S
 'revdelete-no-file' => 'Hindi umiiral ang tinutukoy na talaksan.',
 'revdelete-show-file-confirm' => 'Nakatitiyak ka bang nais mong tanawin ang isang binurang pagbabago ng talaksang "<nowiki>$1</nowiki>" mula $2 noong $3?',
 'revdelete-show-file-submit' => 'Oo',
-'revdelete-selected' => "{{PLURAL:$2|Piniling|Mga piniling}} pagbabago ng '''$1:'''",
 'logdelete-selected' => '{{PLURAL:$1|Piniling tala ng pangyayari|Piniling tala ng mga pangyayari}}:',
 'revdelete-confirm' => 'Pakitiyak po na nais mo itong gawin, na nauunawaan mo ang mga kahihinatnan, at na ginagawa mo ito alinsunod sa [[{{MediaWiki:Policy-url}}|patakaran]].',
 'revdelete-suppress-text' => "Ang paglilingid ay dapat na gamitin '''lamang''' para sa sumusunod na mga pagkakataon:
@@ -1246,7 +1284,7 @@ Matatagpuan ang mga detalye sa loob ng [{{fullurl:{{#Special:Log}}/delete|page={
 'prefs-watchlist-edits-max' => 'Pinakamataas na bilang: 1000',
 'prefs-watchlist-token' => 'Balap ng talaan ng mga binabantayan:',
 'prefs-misc' => 'Bala-balaki',
-'prefs-resetpass' => 'Baguhin ang hudyat',
+'prefs-resetpass' => 'Baguhin ang password',
 'prefs-changeemail' => 'Baguhin ang direksiyong e-liham',
 'prefs-setemail' => 'Magtakda ng direksiyong e-liham',
 'prefs-email' => 'Mga pagpipilian para sa e-liham',
@@ -1319,7 +1357,7 @@ Isasapubliko ang impormasyong ito.',
 'email' => 'E-liham',
 'prefs-help-realname' => "Opsyonal ('di-talaga kailangan) ang tunay na pangalan.
 Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para iyong mga ginawa.",
-'prefs-help-email' => 'Hindi talaga kailangang may tirahan ng e-liham, subalit kailangan para sa muling pagtatakda ng hudyat, kung makalimutan mo ang hudyat mo.',
+'prefs-help-email' => 'Hindi kailangang may email address, subalit kailangan ito para sa muling pagtatakda ng password, kung makalimutan mo ang password mo.',
 'prefs-help-email-others' => 'Mapipili mo rin na makipag-ugnayan sa iyo ang iba sa pamamagitan ng iyong pahina ng tagagamit o usapan na hindi kailangang ilantad ang katauhan mo.',
 'prefs-help-email-required' => 'Kailangan ang direksiyong e-liham.',
 'prefs-info' => 'Saligang kabatiran',
@@ -1328,6 +1366,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'prefs-dateformat' => 'Anyo ng petsa',
 'prefs-timeoffset' => 'Pagtatama ng oras',
 'prefs-advancedediting' => 'Masulong na mga mapagpipilian',
+'prefs-preview' => 'Paunang tingin',
 'prefs-advancedrc' => 'Masulong na mga mapagpipilian',
 'prefs-advancedrendering' => 'Masulong na mga mapagpipilian',
 'prefs-advancedsearchoptions' => 'Masulong na mga mapagpipilian',
@@ -1335,6 +1374,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'prefs-displayrc' => 'Ipakita ang mga pagpipilian',
 'prefs-displaysearchoptions' => 'Ipakita ang mga pagpipilian',
 'prefs-displaywatchlist' => 'Ipakita ang mga pagpipilian',
+'prefs-tokenwatchlist' => 'Token o susi',
 'prefs-diffs' => 'Mga pagkakaiba',
 
 # User preference: email validation using jQuery
@@ -1448,7 +1488,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'right-siteadmin' => 'Ikandado at alisin ang pagkakakandado ng kalipunan ng dato',
 'right-override-export-depth' => 'Iluwas ang mga pahina na kabilang ang mga pahinang nakakawing magpahanggang sa isang lalim na 5',
 'right-sendemail' => 'Magpadala ng e-liham sa ibang mga tagagamit',
-'right-passwordreset' => 'Tingnan ang mga e-liham ng muling pagtatakda ng hudyat',
+'right-passwordreset' => 'Tingnan ang mga email ng muling pagtatakda ng password',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Talaan ng paglikha ng tagagamit',
@@ -1509,11 +1549,23 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'rcnotefrom' => "Nasa ibaba ang mga pagbabago mula pa noong '''$2''' (ipinapakita ang magpahanggang sa '''$1''').",
 'rclistfrom' => 'Ipakita ang bagong mga pagbabago simula sa $1',
 'rcshowhideminor' => '$1 maliliit na mga pagbabago',
+'rcshowhideminor-show' => 'Ipakita',
+'rcshowhideminor-hide' => 'Itago',
 'rcshowhidebots' => "$1 mga ''bot''",
-'rcshowhideliu' => '$1 nakalagdang mga tagagamit',
+'rcshowhidebots-show' => 'Ipakita',
+'rcshowhidebots-hide' => 'Itago',
+'rcshowhideliu' => '$1 nakatalang mga tagagamit',
+'rcshowhideliu-show' => 'Ipakita',
+'rcshowhideliu-hide' => 'Itago',
 'rcshowhideanons' => '$1 hindi kilalang mga tagagamit',
+'rcshowhideanons-show' => 'Ipakita',
+'rcshowhideanons-hide' => 'Itago',
 'rcshowhidepatr' => '$1 napatrolyang mga pagbabago',
+'rcshowhidepatr-show' => 'Ipakita',
+'rcshowhidepatr-hide' => 'Itago',
 'rcshowhidemine' => '$1 mga pagbabago ko',
+'rcshowhidemine-show' => 'Ipakita',
+'rcshowhidemine-hide' => 'Itago',
 'rclinks' => 'Ipakita ang huling $1 mga pagbabago sa loob ng huling $2 mga araw<br />$3',
 'diff' => 'pagkakaiba',
 'hist' => 'kasaysayan',
@@ -1529,7 +1581,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'rc-change-size' => '$1',
 'rc-change-size-new' => '$1 {{PLURAL:$1|byte|mga byte}} pagkaraan ng pagbabago',
 'newsectionsummary' => '/* $1 */ bagong seksyon',
-'rc-enhanced-expand' => 'Ipakita ang mga detalye (kailangan ng JavaScript)',
+'rc-enhanced-expand' => 'Ipakita ang mga detalye',
 'rc-enhanced-hide' => 'Itago ang mga detalye',
 'rc-old-title' => 'dating nalikha bilang "$1"',
 
@@ -1548,8 +1600,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'reuploaddesc' => 'Kanselahin/Iurong ang pagkarga at magbalik sa pormularyo ng pagkakarga',
 'upload-tryagain' => 'Ipasa ang binagong paglalarawan ng talaksan',
 'uploadnologin' => 'Hindi nakalagda',
-'uploadnologintext' => 'Dapat ikaw ay [[Special:UserLogin|nakalagda]]
-upang makapagkarga ng talaksan.',
+'uploadnologintext' => '$1 upang makapag-upload ng files.',
 'upload_directory_missing' => 'Nawawala ang direktoryo ng pagkarga ($1) at hindi na mailikha ng webserver.',
 'upload_directory_read_only' => 'Ang direktoryo ng pagkarga ($1) ay hindi maisulat ng webserver.',
 'uploaderror' => 'Kamalian sa pagkarga',
@@ -1806,6 +1857,8 @@ Kapag sinala ng tagagamit, tanging mga talaksan lang kung saan nagkarga ang taga
 'listfiles_size' => 'Sukat',
 'listfiles_description' => 'Paglalarawan',
 'listfiles_count' => 'Mga bersiyon',
+'listfiles-latestversion-yes' => 'Oo',
+'listfiles-latestversion-no' => 'Hindi',
 
 # File description page
 'file-anchor-link' => 'Talaksan',
@@ -1902,6 +1955,9 @@ Marahil ay naisa mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawa
 'randompage' => 'Pahinang walang-pili',
 'randompage-nopages' => 'Walang mga pahina sa sumusunod na {{PLURAL:$2|ngalan-espasyo|mga ngalan-espasyo}}: $1.',
 
+# Random page in category
+'randomincategory-selectcategory-submit' => 'Gawin',
+
 # Random redirect
 'randomredirect' => 'Pagkargang walang-pili',
 'randomredirect-nopages' => 'Walang mga pagkarga sa ngalan-espasyong "$1".',
@@ -1990,6 +2046,10 @@ Nasugpo na ang mga ipinasok na <del>inekisan</del>.',
 'protectedpages-indef' => 'Mga walang katiyakang proteksyon lamang',
 'protectedpages-cascade' => 'Baita-baitang na mga panananggalang lamang',
 'protectedpagesempty' => 'Sa kasalukuyan, walang mga pahinang nakasanggalang na may ganitong mga parametro.',
+'protectedpages-page' => 'Pahina',
+'protectedpages-reason' => 'Dahilan',
+'protectedpages-unknown-timestamp' => 'Hindi alam',
+'protectedpages-unknown-performer' => 'Hindi alam na tagagamit o user',
 'protectedtitles' => 'Nakasanggalang na mga pamagat',
 'protectedtitlesempty' => 'Walang pamagat ang kasalukuyang nakaprotekta sa binigay na parametro.',
 'listusers' => 'Tala ng tagagamit',
@@ -2152,7 +2212,7 @@ Ang ipinasok mong direksiyong e-liham sa [[Special:Preferences|iyong mga kagustu
 'usermessage-template' => 'MediaWiki:UserMessage',
 
 # Watchlist
-'watchlist' => 'Mga binabantayan ko',
+'watchlist' => 'Talaan ng mga binabantayan',
 'mywatchlist' => 'Bantayan',
 'watchlistfor2' => 'Para sa $1 $2',
 'nowatchlist' => 'Wala kang pahinang binabantayan.',
@@ -3864,7 +3924,7 @@ Dapat na nakatanggap ka ng [{{SERVER}}{{SCRIPTPATH}}/COPYING isang sipi ng Pangk
 * <span class="mw-specialpagerestricted">Pinaghihigpitang natatanging mga pahina.</span>',
 'specialpages-group-maintenance' => 'Mga pagpapanatiling ulat',
 'specialpages-group-other' => 'Iba pang natatanging mga pahina',
-'specialpages-group-login' => 'Lumagda / lumikha ng kuwenta',
+'specialpages-group-login' => 'Mag-login / lumikha ng akawnt',
 'specialpages-group-changes' => 'Mga huling binago at mga tala',
 'specialpages-group-media' => 'Mga ulat ng midya at mga pagkarga',
 'specialpages-group-users' => 'Mga tagagamit at mga karapatan',
index 4fa35ad..e99826a 100644 (file)
@@ -802,6 +802,7 @@ Tarayıcınızın önbelleğini temizleyinceye kadar bazı sayfalarda, oturumunu
 'gotaccountlink' => 'Oturum açın',
 'userlogin-resetlink' => 'Giriş bilgilerinizi mi unuttunuz?',
 'userlogin-resetpassword-link' => 'Parolanızı mı unuttunuz?',
+'userlogin-helplink2' => 'Oturum açma konusunda yardım alın',
 'userlogin-loggedin' => 'Zaten {{GENDER:$1|$1}} olarak oturum açtınız.
 Başka bir kullanıcı olarak oturum açmak için aşağıdaki formu kullanın.',
 'userlogin-createanother' => 'Başka bir hesap oluşturun',
@@ -1076,7 +1077,7 @@ Bu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]],
 ya da bu sayfayı [{{fullurl:{{FULLPAGENAME}}|action=edit}} değiştirebilirsiniz]</span>.',
 'noarticletext-nopermission' => 'Bu sayfa şu anda boştur. 
 Bu başlığı [[Special:Search/{{PAGENAME}}|diğer sayfalarda arayabilir]] ya da <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili kayıtları tarayabilirsiniz].</span>',
-'missing-revision' => '"{{PAGENAME}}" sayfasının #$1 sürümü yok.
+'missing-revision' => '"{{FULLPAGENAME}}" sayfasının #$1 sürümü yok.
 
 Bu duruma genellikle silinmiş bir sayfaya eski tarihli bir bağlantının takip edilmesi neden olur.
 
@@ -1304,8 +1305,7 @@ Bir hizmetli olarak bu değişikliği görebilirsiniz; [{{fullurl:{{#Special:Log
 'revdelete-no-file' => 'Belirtilen dosya mevcut değil.',
 'revdelete-show-file-confirm' => '"<nowiki>$1</nowiki>" dosyasının $2 $3 tarihli silinmiş bir revizyonunu görmek istediğinize emin misiniz?',
 'revdelete-show-file-submit' => 'Evet',
-'revdelete-selected' => "'''[[:$1]] sayfasının {{PLURAL:$2|seçili değişikliği|seçili değişiklikleri}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Seçili kayıt olayı|Seçili kayıt olayları}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Seçili kayıt olayı|Seçili kayıt olayları}}:',
 'revdelete-confirm' => 'Lütfen, bunu yapmak istediğinizi , sonuçlarını anladığınızı, ve bunu [[{{MediaWiki:Policy-url}}|ilkelere]] göre yapıyor olduğunuzu onaylayın.',
 'revdelete-suppress-text' => "Saklama '''sadece''' aşağıdaki durumlarda kullanılmalıdır:
 * Muhtemel iftira niteliğindeki bilgi
@@ -2165,6 +2165,9 @@ Dosyanın açıklama sayfasında değişiklik yapmak için ilgili sayfaya [$2 bu
 # List redirects
 'listredirects' => 'Yönlendirmeleri listele',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Kopyası bulunan dosyalar listesi',
+
 # Unused templates
 'unusedtemplates' => 'Kullanılmayan şablonlar',
 'unusedtemplatestext' => 'Bu sayfa, {{ns:template}} alan adında bulunan ve diğer sayfalara eklenmemiş olan sayfaları listeler. Şablonlara olan diğer bağlantıları da kontrol etmeden silmeyiniz.',
index 404d52e..fbc547d 100644 (file)
@@ -1064,8 +1064,7 @@ $3 күрсәткән сәбәп: ''$2''",
 'revdelete-no-file' => 'Бу файл юк.',
 'revdelete-show-file-confirm' => 'Сез чыннан да «<nowiki>$1</nowiki>» файлының бетерелгән  $2, $3 версиясен карарга телисезме??',
 'revdelete-show-file-submit' => 'Әйе',
-'revdelete-selected' => "'''[[:$1]] битенең {{PLURAL:$2|1=Сайланган юрама|сайланган юрамалары}}:'''",
-'logdelete-selected' => "'''Журналның {{PLURAL:$1|1=Сайланган язма|сайланган язмалары}} :'''",
+'logdelete-selected' => 'Журналның {{PLURAL:$1|1=Сайланган язма|сайланган язмалары}} :',
 'revdelete-legend' => 'Чикләүләр урнаштыр:',
 'revdelete-hide-text' => 'Битнең бу юрамасы текстын яшер',
 'revdelete-hide-image' => 'Файл эчендәгеләрне качыр',
@@ -1355,7 +1354,7 @@ $1",
 'rcshowhidebots' => 'ботларны $1',
 'rcshowhidebots-show' => 'күрсәт',
 'rcshowhidebots-hide' => 'яшер',
-'rcshowhideliu' => 'Теркәлгән кулланучыларны $1',
+'rcshowhideliu' => 'теркәлгән кулланучыларны $1',
 'rcshowhideliu-show' => 'күрсәт',
 'rcshowhideliu-hide' => 'яшер',
 'rcshowhideanons' => 'кермәгән кулланучыларны $1',
index 90e540f..60cc324 100644 (file)
@@ -806,7 +806,7 @@ $1 ساقلاپ، ئاندىن قايتا سىناڭ.',
 [{{fullurl:{{FULLPAGENAME}}|action=edit}} بۇ بەتنى تەھرىرلىيەلەيسىز]</span>',
 'noarticletext-nopermission' => 'بۇ بەتتە ھازىرچە مەزمۇن يوق.
  سىز باشقا بەتتە [[Special:Search/{{PAGENAME}}|بۇ بەتنىڭ ماۋزۇسىنى ئىزدىيەلەيسىز]] ياكى <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}] مۇناسىۋەتلىك خاتىرىسىنى ئىزدىيەلەيسىز،</span>لىكىن سزنىڭ بەت قۇرۇش ھوقوقىڭز يوق.',
-'missing-revision' => '"{{PAGENAME}}" ئاتلىق بەتنىڭ تۈزىتىلگەن نەشرى #$1 مەۋجۇت ئەمەس.
+'missing-revision' => '"{{FULLPAGENAME}}" ئاتلىق بەتنىڭ تۈزىتىلگەن نەشرى #$1 مەۋجۇت ئەمەس.
 
 ئادەتتە بۇ ئۆچۈرۈلگەن بىر بەتنىڭ ئۇلانمىسىغا كىرگەنلىك سەۋەبىدىن بولىدۇ.
 تەپسىلىي ئۇچۇرنى [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى] دىن تاپقىلى بولىدۇ.',
@@ -1043,8 +1043,7 @@ $3 تەمىنلىگەن چەكلەش سەۋەبى ''$2''",
 'revdelete-no-file' => 'ھۆججەت بەلگىلىمىسى مەۋجۇد ئەمەس.',
 'revdelete-show-file-confirm' => '$2 $3 دىكى "<nowiki>$1</nowiki>" نىڭ ئۆچۈرۈلگەن تۈزىتىلگەن نەشرىنى راستىنلا كۆرەمسىز؟',
 'revdelete-show-file-submit' => 'ھەئە',
-'revdelete-selected' => "'''[[:$1]] نىڭ {{PLURAL:$2|تاللانغان تۈزىتىش نەشرى|تاللانغان تۈزىتىش نەشرى}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|تاللانغان خاتىرە تۈرى|تاللانغان خاتىرە تۈرى}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|تاللانغان خاتىرە تۈرى|تاللانغان خاتىرە تۈرى}}:',
 'revdelete-confirm' => 'بۇ مەشغۇلاتنى ئىجرا قىلسىڭىز ئاقىۋىتىنى چۈشىنىدىغانلىقىڭىزنى ھەمدە بۇ پروگراممىنىڭ [[{{MediaWiki:Policy-url}}|سىياسەت]]كە ئۇيغۇن كېلىدىغانلىقىنى جەزملەڭ.',
 'revdelete-suppress-text' => "'''پەقەت''' تۆۋەندىكى ئەھۋاللار يۈز بەرگەندىلا زىيارەت چەكلىنىدۇ:
 * نامۇۋاپىق شەخسىي ئۇچۇر
index 8e6fd89..f1df973 100644 (file)
@@ -1105,7 +1105,7 @@ $2
 'noarticletext-nopermission' => 'Зараз на цій сторінці немає тексту.
 Ви можете [[Special:Search/{{PAGENAME}}|пошукати цю назву]] на інших сторінках,
 або <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} пошукати пов\'язані записи в журналах]</span>, але ви не маєте дозволу на створення такої сторінки.',
-'missing-revision' => 'Версія #$1 сторінки «{{PAGENAME}}» не існує.
+'missing-revision' => 'Версія #$1 сторінки «{{FULLPAGENAME}}» не існує.
 
 Імовірно, Ви перейшли за застарілим посиланням на вилучену сторінку.
 Подробиці можна дізнатися з [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журналу вилучень].',
@@ -1341,8 +1341,9 @@ $3 зазначив таку причину: ''$2''",
 'revdelete-no-file' => 'Зазначений файл не існує.',
 'revdelete-show-file-confirm' => 'Ви впевнені, що хочете переглянути вилучену версію файлу «<nowiki>$1</nowiki>» від $3 $2?',
 'revdelete-show-file-submit' => 'Так',
-'revdelete-selected' => "'''{{PLURAL:$2|1=Обрана версія|Обрані версії}} сторінки [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|1=Обраний запис|Обрані записи}} журналу:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Вибрана редакція|Вибрані редакції}} із [[:$2]]:',
+'revdelete-selected-file' => '{{PLURAL:$1|Вибрана версія файлу|Вибрані версії файлу}} із [[:$2]]:',
+'logdelete-selected' => '{{PLURAL:$1|1=Обраний запис|Обрані записи}} журналу:',
 'revdelete-text-text' => 'Видалені версії будуть як і раніше видно в історії сторінки, але їх частини вмісту будуть доступні для учасників.',
 'revdelete-text-file' => 'Видалені версії файлу будуть як і раніше видно в історії сторінки, але їх частини вмісту будуть доступні для учасників.',
 'logdelete-text' => 'Видалені події в журналі будуть як і раніше видно в журналах, але частини їх вмісту будуть доступні для учасників.',
index 15161f0..5babd9a 100644 (file)
@@ -849,8 +849,7 @@ $1 نے پابندی لگائی تھی.
 'revisiondelete' => 'نظرثانی حذف کریں/واپس لائیں',
 'revdelete-nooldid-title' => 'ناقص مقصود نظرثانی',
 'revdelete-show-file-submit' => 'ہاں',
-'revdelete-selected' => "'''[[:$1]] کی {{PLURAL:$2|منتخب نظرثانی|منتخب نظرثانیاں}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|منتخب واقعۂ نوشتہ|منتخب واقعاتِ نوشتہ}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|منتخب واقعۂ نوشتہ|منتخب واقعاتِ نوشتہ}}:',
 'revdelete-confirm' => 'برائے مہربانی! یقین دِہانی کرلیجئے کہ آپ واقعی ایسا کرنا چاہتے ہیں، آپ اِس کے نتائج سے باخبر ہیں، اور آپ یہ [[{{MediaWiki:Policy-url}}|پالیسی]] کے مطابق کررہے ہیں.',
 'revdelete-legend' => 'رویتی پابندیاں لگائیں',
 'revdelete-hide-text' => 'نظرثانی متن چھپاؤ',
index 336bc16..964ff02 100644 (file)
@@ -840,7 +840,7 @@ o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}
 'noarticletext-nopermission' => 'In sto momento no ghe xe nissun testo su sta pagina.
 Te pol [[Special:Search/{{PAGENAME}}|sercar sto titolo de pagina]] in altre pagine,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} sercar in tei registri ligà a sta pagina]</span>, ma no te ghè el parmesso de crear sta pagina.',
-'missing-revision' => 'Ła revixion #$1 de ła pàjina "{{PAGENAME}}" nó ła existe.',
+'missing-revision' => 'Ła revixion #$1 de ła pàjina "{{FULLPAGENAME}}" nó ła existe.',
 'userpage-userdoesnotexist' => 'L\'account "<nowiki>$1</nowiki>" no\'l corisponde mìa a un utente registrà. Verifica se te voli dal bon crear o modificar sta pagina.',
 'userpage-userdoesnotexist-view' => 'L\'utensa "$1" no la xe gnancora registrà.',
 'blocked-notice-logextract' => "Sto utente xè atualmente blocà.
@@ -1051,8 +1051,7 @@ Te połi uncora vixuałixare sto confronto; controłare el [{{fullurl:{{#Special
 'revdelete-no-file' => "El file indicà no l'esiste mia.",
 'revdelete-show-file-confirm' => 'Vuto dal bon vardar la version scancelà del file "<nowiki>$1</nowiki>" del $2 a le $3?',
 'revdelete-show-file-submit' => 'Sì',
-'revdelete-selected' => "'''{{PLURAL:$2|Version selezionà|Versioni selezionà}} de [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Evento del registro selezionà|Eventi del registro selezionè}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Evento del registro selezionà|Eventi del registro selezionè}}:',
 'revdelete-confirm' => 'Par piaser, conferma che vol far sta azion, che te capissi le so conseguense, e che te sì drio operar secondo le [[{{MediaWiki:Policy-url}}|linee guida]].',
 'revdelete-suppress-text' => "La sopression la se dovarìa doparar '''solo''' in sti casi qua:
 
index b007ae6..3565c5f 100644 (file)
@@ -863,8 +863,7 @@ Detalid voidas olda [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'revdelete-nooldid-text' => 'Tö et olgoi valinuded metversijad (metversijoid) necen funkcijan oigetes.',
 'revdelete-no-file' => 'Mugošt failad ei ole.',
 'revdelete-show-file-submit' => 'Ka',
-'revdelete-selected' => "'''{{PLURAL:$2|Valitud versii|Valitud versijad}} lehtpolišpäi [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Valitud kirjutez aigkirjas|Valitud kirjutesed aigkirjas}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Valitud kirjutez aigkirjas|Valitud kirjutesed aigkirjas}}:',
 'revdelete-legend' => 'Säta kaidendused',
 'revdelete-hide-text' => 'Redakcijan tekst',
 'revdelete-hide-image' => 'Peitta failan südäiolend',
index ad1270f..c5bce80 100644 (file)
@@ -1054,7 +1054,7 @@ Bạn có thể [[Special:Search/{{PAGENAME}}|tìm kiếm tựa trang này]] tro
 hoặc [{{fullurl:{{FULLPAGENAME}}|action=edit}} sửa đổi trang này]</span>.',
 'noarticletext-nopermission' => 'Trang này hiện đang trống.
 Bạn có thể [[Special:Search/{{PAGENAME}}|tìm kiếm tựa trang này]] tại các trang khác, hoặc <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tìm kiếm các nhật trình liên quan]</span>, nhưng bạn không có phép tạo trang này.',
-'missing-revision' => 'Phiên bản #$1 của trang có tên “{{PAGENAME}}” không tồn tại.
+'missing-revision' => 'Phiên bản #$1 của trang có tên “{{FULLPAGENAME}}” không tồn tại.
 
 Lỗi này thường xuất hiện đối khi theo dõi liên kết lỗi thời đến phiên bản cũ của một trang đã bị xóa.
 Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} nhật trình xóa].',
@@ -1283,8 +1283,9 @@ hoặc bạn đang tìm cách ẩn phiên bản hiện tại.',
 'revdelete-no-file' => 'Tập tin chỉ định không tồn tại.',
 'revdelete-show-file-confirm' => 'Bạn có chắc muốn xem phiên bản đã bị xóa của tập tin “<nowiki>$1</nowiki>” từ ngày $2 vào lúc $3?',
 'revdelete-show-file-submit' => 'Có',
-'revdelete-selected' => "'''{{PLURAL:$2|Phiên bản|Các phiên bản}} được chọn của [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Nhật trình đã chọn|Các nhật trình đã chọn}}:'''",
+'revdelete-selected-text' => '{{PLURAL:$1|Phiên bản|Các phiên bản}} [[:$2]] được chọn:',
+'revdelete-selected-file' => '{{PLURAL:$1|Phiên bản|Các phiên bản}} tập tin [[:$2]] được chọn:',
+'logdelete-selected' => '{{PLURAL:$1|Nhật trình đã chọn|Các nhật trình đã chọn}}:',
 'revdelete-text-text' => 'Các phiên bản đã xóa sẽ tiếp tục xuất hiện trong lịch sử trang, nhưng một số phần của nội dung sẽ bị ẩn khỏi công chúng.',
 'revdelete-text-file' => 'Các phiên bản tập tin đã xóa sẽ tiếp tục xuất hiện trong lịch sử tập tin, nhưng một số phần của nội dung sẽ bị ẩn khỏi công chúng.',
 'logdelete-text' => 'Các sự kiện đã xóa sẽ tiếp tục xuất hiện trong nhật trình, nhưng một số phần của nội dung sẽ bị ẩn khỏi công chúng.',
@@ -2151,6 +2152,11 @@ Có lẽ bạn muốn miêu tả nó trên [$2 trang miêu tả tập tin] tại
 # List redirects
 'listredirects' => 'Danh sách trang đổi hướng',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Danh sách các tập tin có bản sao',
+'listduplicatedfiles-summary' => 'Đây là danh sách các tập tin là bản sao của tập tin khác, chỉ tính theo phiên bản mới nhất của các tập tin địa phương.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] có [[$3|{{PLURAL:$2|một bản sao|$2 bản sao}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Bản mẫu chưa dùng',
 'unusedtemplatestext' => 'Trang này liệt kê tất cả các trang trong không gian tên {{ns:template}} mà chưa được dùng trong trang nào khác.
index bba6edb..d6f0b9c 100644 (file)
@@ -855,8 +855,7 @@ Kanol logön oni; pats ba binons in [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'revdelete-nooldid-text' => 'U no elevälol zeilafomami(s) pro dun at, u fomam pelevälöl no dabinon, u steifülol ad klänedön fomami anuik.',
 'revdelete-show-file-confirm' => 'Vilol-li fümiko logön revidi pemoüköl ragiva: „<nowiki>$1</nowiki>“ dätü $2 tü $3?',
 'revdelete-show-file-submit' => 'Si',
-'revdelete-selected' => "'''{{PLURAL:$2|Fomam|Fomams}} pevalöl pada: [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Lisedajenot|Lisedajenots}} pevälöl:'''",
+'logdelete-selected' => '{{PLURAL:$1|Lisedajenot|Lisedajenots}} pevälöl:',
 'revdelete-legend' => 'Levälön miedükamis logova:',
 'revdelete-hide-text' => 'Klänedön vödemi revida',
 'revdelete-hide-image' => 'Klänedön ragivaninädi',
index 9a3779c..e144f55 100644 (file)
@@ -738,8 +738,7 @@ Lisateedüst või ollaq [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAME
 'revisiondelete' => 'Kistudaq/võtaq tagasi lehe kujjõ',
 'revdelete-nooldid-title' => 'Säänest otsitavat kujjo olõ-i',
 'revdelete-nooldid-text' => 'Sa olõ-i valinuq kujjo vai kujjõ.',
-'revdelete-selected' => "'''{{PLURAL:$2|Valit kujo|Validuq kujoq}} lehele [[:$1]]'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Valit muutminõ|Validuq muutmisõq}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Valit muutminõ|Validuq muutmisõq}}:',
 'revdelete-legend' => 'Nättävüse piirdmiseq',
 'revdelete-hide-text' => 'Käkiq kujo sisu',
 'revdelete-hide-image' => 'Käkiq teedüstü sissu',
index 027be4b..4026edf 100644 (file)
@@ -741,8 +741,7 @@ Vos l' poloz co vey; i gn a des detays sol [{{fullurl:{{#Special:Log}}/suppress|
 'rev-delundel' => 'mostrer/catchî',
 'revisiondelete' => 'Disfacer/rapexhî des modêyes',
 'revdelete-show-file-submit' => 'Oyi',
-'revdelete-selected' => "'''{{PLURAL:$2|Tchoezeye modêye|Tchoezeyès modêyes}} di [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Evenmint tchoezi|Evenmints tchoezis}} ezès djournås:'''",
+'logdelete-selected' => '{{PLURAL:$1|Evenmint tchoezi|Evenmints tchoezis}} ezès djournås:',
 'revdelete-legend' => 'Defini des restriccions sol voeyaedje',
 'revdelete-hide-text' => "Catchî l' tecse del modêye",
 'revdelete-hide-comment' => "Catchî l' comintaire di candjmint",
index 77a6744..d4b39a5 100644 (file)
@@ -776,7 +776,7 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} igliwat ini nga pakli]</span>.',
 'noarticletext-nopermission' => 'Waray yana nahasurat hini nga pakli
 Puyde hi ikaw [[Special:Search/{{PAGENAME}}|magbiling han ngaran hini nga pakli]] ha iba nga mga pakli,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mamiling han mga nanginginlabot nga mga talaan]</span>, kundi diri ka gintutugotan hin paghímò hini nga pakli.',
-'missing-revision' => 'Waray na an rebisyon #$1 han pakli nga ginngaranan nga  "{{PAGENAME}}".
+'missing-revision' => 'Waray na an rebisyon #$1 han pakli nga ginngaranan nga  "{{FULLPAGENAME}}".
 
 Ini in agsob tungod han pagsunod hin daan nga sumpay hin kaagi ha pakli nga ginpara.
 An mga detalye in mabibilngan ha [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
index b0b369f..aa579fa 100644 (file)
@@ -754,8 +754,7 @@ Li nga doon yorkat tax na ba-tay nga man a [$1 gis gii wuute] su la neexee.",
 'revdelete-no-file' => 'Dencukaay bi amul',
 'revdelete-show-file-confirm' => 'Ndax wóor na ne bëgg ngaa wone sumb bees far bu bii dencukaay "<nowiki>$1</nowiki>" bu $2 ci $3?',
 'revdelete-show-file-submit' => 'Waaw',
-'revdelete-selected' => "'''{{PLURAL:$2|Sumbum '''$1''' mi falu|Sumbi '''$1''' yi falu}} :'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Xew-xewu yéenekaay bi falu|Xew-xewi yéenekaay yi falu}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Xew-xewu yéenekaay bi falu|Xew-xewi yéenekaay yi falu}}:',
 'revdelete-legend' => 'Taxawal ay digal ci sumb yi ñu far:',
 'revdelete-hide-text' => 'Nëbb mbindum sumb bi',
 'revdelete-hide-image' => 'Nëbb ëmbiitu dencukaay bi',
index 3a5e710..4b09dfc 100644 (file)
@@ -821,8 +821,7 @@ $3封禁个原因是''$2''",
 'revdelete-no-file' => '指定文件弗存在。',
 'revdelete-show-file-confirm' => '侬阿是真个要查看文件“<nowiki>$1</nowiki>”垃拉$2 $3已经删除个修订?',
 'revdelete-show-file-submit' => '是',
-'revdelete-selected' => "'''选取'''[[:$1]]'''个$2趟修订:'''",
-'logdelete-selected' => "'''选取'''$1'''个日志事件:'''",
+'logdelete-selected' => '选取$1个日志事件:',
 'revdelete-confirm' => '假使侬想箇能介做个闲话,请确认侬已经清爽箇能介做个后果,外加箇个程序符合[[{{MediaWiki:Policy-url}}|政策]]。',
 'revdelete-suppress-text' => "'''只有'''出现下头眼情况再应阻止访问:
 * 弗适合个个人信息
@@ -913,7 +912,7 @@ $1",
 'titlematches' => '页面标题匹配',
 'textmatches' => '页面内容匹配',
 'notextmatches' => '呒没匹配个页面文本',
-'prevn' => '上个 $1',
+'prevn' => '前$1个',
 'nextn' => '下个 {{PLURAL:$1|$1}}',
 'prevn-title' => '前$1个结果',
 'nextn-title' => '后$1个结果',
@@ -1479,7 +1478,7 @@ $1",
 'whatlinkshere-next' => '后$1个',
 'whatlinkshere-links' => '←链进',
 'whatlinkshere-hideredirs' => '$1转戳',
-'whatlinkshere-hidetrans' => '$1å\8c\85å\90«',
+'whatlinkshere-hidetrans' => '$1åµ\8cå\85¥',
 'whatlinkshere-hidelinks' => '$1链接',
 'whatlinkshere-filters' => '过滤器',
 
index 37545dd..4d3d5ae 100644 (file)
@@ -232,7 +232,7 @@ $messages = array(
 'tog-watchlisthidepatrolled' => 'באַהאַלטן פאַטראלירטע רעדאַקטירונגען פֿון דער אויפֿפאַסונג ליסטע',
 'tog-ccmeonemails' => 'שיק מיר קאפיעס פון בליצבריוו וואס איך שיק צו אנדערע באַניצער',
 'tog-diffonly' => 'ווייז נישט אינהאלט אונטער די דיפערענץ',
-'tog-showhiddencats' => 'ווײַז באהאלטענע קאטעגאריעס',
+'tog-showhiddencats' => 'ווײַזן באהאלטענע קאטעגאריעס',
 'tog-norollbackdiff' => 'היפט איבער ווײַזן אונטערשייד נאכן אויספֿירן א צוריקדריי',
 'tog-useeditwarning' => 'שטעלן א ווארענונג ווען איך לאז איבער א רעדאקטירונג בלאט מיט נישט אויפגעהיטענע ענדערונגען',
 'tog-prefershttps' => 'ניצט שטענדיק א זיכערע פארבינדונג ווען ארײַנגלאגירט',
@@ -932,7 +932,7 @@ $2
 'noarticletext-nopermission' => 'דערווײַל איז נישט פאַראַן קיין שום טעקסט אין דעם בלאַט.
 איר קענט [[Special:Search/{{PAGENAME}}| זוכן דעם בלאט טיטל]] אין אנדערע בלעטער,
 אדער <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} נאָכזוכן די רעלעוואנטע לאגביכער]</span>., אבער איר זענט נישט ערלויבט צו שאפֿן דעם בלאט.',
-'missing-revision' => 'די רעוויזיע #$1 פונעם בלאט "{{PAGENAME}}" עקזיסטירט נישט.
+'missing-revision' => 'די רעוויזיע #$1 פונעם בלאט "{{FULLPAGENAME}}" עקזיסטירט נישט.
 
 דאס געשעט געוויינלעך פון פאלגן א פארעלטערטן היסטאריע לינק צו א בלאט וואס איז געווארן אויסגעמעקט.
 פרטים קען מען געפינען אינעם [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} אויסמעקונג לאגבוך].',
@@ -1164,8 +1164,7 @@ $2
 'revdelete-no-file' => 'די ספעציפֿירטע טעקע עקזיסטירט נישט.',
 'revdelete-show-file-confirm' => 'צי זענט איר זעכער איר ווילט באַקוקן אַן אויסגעמעקטע רעוויזיע פון דער טעקע "<nowiki>$1</nowiki>" פון $2 בשעה $3?',
 'revdelete-show-file-submit' => 'יא',
-'revdelete-selected' => "'''{{PLURAL:$2|אויסדערוויילטע ווערסיע| אויסדערוויילטע ווערסיעס}} פון [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1| אויסדערוויילטע לאג אקציע|אויסדערוויילטע לאג אקציעס}}:'''",
+'logdelete-selected' => '{{PLURAL:$1| אויסדערוויילטע לאג אקציע|אויסדערוויילטע לאג אקציעס}}:',
 'revdelete-confirm' => 'זייט אזוי גוט און באשטעטיקט אז דאס איז טאקע אייער כוונה, אז איר פארשטייט די קאנסעקווענצן, און אז איר טוט דאס לויט  [[{{MediaWiki:Policy-url}}|דער פאליסי]].',
 'revdelete-suppress-text' => "אונטערדרוקן זאל בלויז גענוצט ווערן '''נאר''' אין די פאלגנדע פעלער:
 * אינפארמאציע וואס קען זיין מוציא שם רע
@@ -3802,8 +3801,11 @@ $5
 'tags-intro' => 'דער בלאַט ווײַזט די טאַגן מיט וואס דאס ווייכווארג קען צייכענען אַ רעדאַגירונג, און זייער באַטייַט.',
 'tags-tag' => 'טאַג נאָמען',
 'tags-display-header' => 'אויסזען אין ענדערונג רשימות',
-'tags-description-header' => 'פֿולי באַשרייַבונג פון באַטײַט',
+'tags-description-header' => 'פֿולע באַשרייַבונג פון באַטײַט',
+'tags-active-header' => 'אַקטיוו?',
 'tags-hitcount-header' => 'מארקירטע ענדערונגען',
+'tags-active-yes' => 'יא',
+'tags-active-no' => 'ניין',
 'tags-edit' => 'רעדאַקטירן',
 'tags-hitcount' => ' {{PLURAL:$1|ענדערונג|$1 ענדערונגען}}',
 
index 092b6b5..6a161b1 100644 (file)
@@ -750,7 +750,7 @@ Tó bá jẹ́ pé oníṣe aláìlórúkọ ni yín, tí ẹ sì ri pé wọ́n
 'noarticletext-nopermission' => 'Lọ́wọ́lọ́wọ́ kò sí ìkọ̀ nínú ojúewé yìí.
 Ẹ le [[Special:Search/{{PAGENAME}}|wá àkọlé ojúewé yìí]] nínú àwọn ojúewé mìíràn, tàbí
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} wá àwọn àkọọ́lẹ̀ tó bámu]</span>, sùgbọ́n ẹ kò ní àṣẹ láti ṣ\'ẹ̀dá ojúewé yìí.',
-'missing-revision' => 'Àtúnyẹ̀wò #$1 ojúewé tó únjẹ́ "{{PAGENAME}}" kò sí.
+'missing-revision' => 'Àtúnyẹ̀wò #$1 ojúewé tó únjẹ́ "{{FULLPAGENAME}}" kò sí.
 
 Èyí únsábà ṣẹlẹ̀ nítorípé ẹ tẹ̀lé ìtàn àjápọ̀ tí kò ṣiṣẹ́ mọ́ wá sí orí ojúewé tó ti jẹ́ píparẹ́.
 Ẹ̀kúnrẹ́rẹ́ wà nínú [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} àkọọ́lẹ̀ ìparẹ́].',
@@ -982,8 +982,7 @@ Tó bá jẹ́ pé ẹ ti wọlé, ẹ lè dẹ́kun ìkìlọ̀ yìí nínù ab
 'revdelete-no-file' => 'Fáìlì tójẹ́ títọ́kasí kò sí.',
 'revdelete-show-file-confirm' => 'Ṣé ẹ ní ìdálójú pé ẹ fẹ́ wo àtúnyẹ̀wó píparẹ́ ti fáìlì "<nowiki>$1</nowiki>" látọjọ́ $2 ní ago $3?',
 'revdelete-show-file-submit' => 'Bẹ́ẹ̀ni',
-'revdelete-selected' => "'''{{PLURAL:$2|Àtúnyẹ̀wò síṣàyàn|Àwọn àtúnyẹ̀wò síṣàyàn}} fún [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Àkọọ́lẹ̀ ìṣẹ̀lẹ̀ síṣàyàn|Àwọn àkọọ́lẹ̀ ìṣẹ̀lẹ̀ síṣàyàn}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Àkọọ́lẹ̀ ìṣẹ̀lẹ̀ síṣàyàn|Àwọn àkọọ́lẹ̀ ìṣẹ̀lẹ̀ síṣàyàn}}:',
 'revdelete-confirm' => 'Ẹ jọ̀wọ́ ẹ rídájú pé ohun tí ẹ fẹ́ ṣe nìyí, pé ohun tí yíò ṣẹlẹ̀ yé yín, bẹ́ẹ̀sìni pé ẹ̀ únṣe é lọ́nà tó bá  [[{{MediaWiki:Policy-url}}|àdéhùn]] mu.',
 'revdelete-suppress-text' => "Ìrẹ̀mọ́lẹ̀ gbọ́dọ̀ jẹ́ lílò fún àwọn ìṣẹ̀lẹ̀ ìsàlẹ̀ wọ̀nyí '''nìkan''':
 *Ọ̀rọ̀ tó le fa ẹjọ́ wá
index 252d030..a34af04 100644 (file)
@@ -1012,8 +1012,7 @@ $1',
 'revdelete-no-file' => '指定嘅檔案未存在。',
 'revdelete-show-file-confirm' => '你係咪真係想去睇響$2 $3刪咗 "$1" 嘅檔案修訂?',
 'revdelete-show-file-submit' => '係',
-'revdelete-selected' => "'''揀[[:$1]]嘅$2次修訂:'''",
-'logdelete-selected' => "'''揀[[:$1]]嘅日誌事件:'''",
+'logdelete-selected' => '揀[[:$1]]嘅日誌事件:',
 'revdelete-confirm' => '請確認你肯定去做嘅話,你就要明白到後果,同埋呢個程序符合[[{{MediaWiki:Policy-url}}|政策]]。',
 'revdelete-suppress-text' => "壓制'''只'''應該響下面嘅情況之下進行:
 * 唔合適嘅個人資料
@@ -2226,7 +2225,7 @@ $1',
 'whatlinkshere-next' => '後$1版',
 'whatlinkshere-links' => '← 連結',
 'whatlinkshere-hideredirs' => '$1跳轉',
-'whatlinkshere-hidetrans' => '$1å\8c\85å\90«',
+'whatlinkshere-hidetrans' => '$1åµ\8cå\85¥',
 'whatlinkshere-hidelinks' => '$1連結',
 'whatlinkshere-hideimages' => '$1檔案連結',
 'whatlinkshere-filters' => '過濾器',
index 763e8a9..0a88dc5 100644 (file)
@@ -702,8 +702,7 @@ der kunn'n details anwezig zien in 't [{{fullurl:{{#Special:Log}}/suppress|page=
 'revisiondelete' => 'Versies verwiederen/trugplekken',
 'revdelete-nooldid-title' => 'Hin doelversie',
 'revdelete-nooldid-text' => 'Je ei hin doelversie(s) voe deêze handelienge opeheven, de aneheven versie besti nie, of je probeer de lèste versie te verberhen.',
-'revdelete-selected' => "'''Hesillecteerde {{PLURAL:$2|bewerkieng|bewerkiengen}} van [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Hesillecteerde logboekactie|Hesillecteerde logboekacties}}:'''",
+'logdelete-selected' => '{{PLURAL:$1|Hesillecteerde logboekactie|Hesillecteerde logboekacties}}:',
 'revdelete-legend' => "Zichbaereidsbeperkiengen instell'n",
 'revdelete-hide-text' => 'De bewerkte tekst verberhen',
 'revdelete-hide-image' => 'Bestandsinoud verberhen',
index 40fcce5..336f9db 100644 (file)
@@ -517,7 +517,7 @@ $messages = array(
 'category-file-count-limited' => '以下{{PLURAL:$1|文件|$1个文件}}属于当前分类。',
 'listingcontinuesabbrev' => '续',
 'index-category' => '可索引页面',
-'noindex-category' => '禁止索引的页面',
+'noindex-category' => '不可索引页面',
 'broken-file-category' => '有受损文件链接的页面',
 'categoryviewer-pagedlinks' => '($1)($2)',
 
@@ -784,9 +784,9 @@ $2',
 'virus-unknownscanner' => '未知的反病毒软件:',
 
 # Login and logout pages
-'logouttext' => "'''您现在已经退出。'''
+'logouttext' => '<strong>你现在已经退出登录。</strong>
 
-请注意一些页面可能仍然显示您为登录状态,直到您清空您的浏览器缓存为止。",
+请注意,某些页面可能在你清除你的浏览器缓存之前,继续显示你处于登录状态。',
 'welcomeuser' => '欢迎,$1!',
 'welcomecreation-msg' => '你的账户已创建。请不要忘记更改你的[[Special:Preferences|{{SITENAME}}设置]]。',
 'yourname' => '用户名:',
@@ -796,7 +796,7 @@ $2',
 'yourpassword' => '密码:',
 'userlogin-yourpassword' => '密码',
 'userlogin-yourpassword-ph' => '请输入你的密码',
-'createacct-yourpassword-ph' => '请输入一个密码',
+'createacct-yourpassword-ph' => '请输入密码',
 'yourpasswordagain' => '请再次输入密码:',
 'createacct-yourpasswordagain' => '确认密码',
 'createacct-yourpasswordagain-ph' => '请再次输入密码',
@@ -830,7 +830,7 @@ $2',
 'createacct-another-join' => '在下方输入新帐户信息。',
 'createacct-emailrequired' => '电子邮件地址',
 'createacct-emailoptional' => '电子邮件地址(可选)',
-'createacct-email-ph' => '请输入的电子邮件地址',
+'createacct-email-ph' => '请输入的电子邮件地址',
 'createacct-another-email-ph' => '输入电子邮件地址',
 'createaccountmail' => '使用一个临时的随机密码并将其发送到指定的电子邮件地址中',
 'createacct-realname' => '真实姓名 (可选)',
@@ -839,9 +839,9 @@ $2',
 'createacct-reason-ph' => '你为什么要创建另一个账户',
 'createacct-captcha' => '安全检查',
 'createacct-imgcaptcha-ph' => '请输入上图中的文字',
-'createacct-submit' => '创建的账户',
+'createacct-submit' => '创建的账户',
 'createacct-another-submit' => '创建另一个账户',
-'createacct-benefit-heading' => '{{SITENAME}}æ\98¯ç\94±å\83\8fæ\82¨è¿\99æ ·ç\9a\84人建ç«\8b的。',
+'createacct-benefit-heading' => '{{SITENAME}}æ\98¯ç\94±å\90\8cä½ ä¸\80æ ·ç\9a\84人们æ\9e\84ç­\91的。',
 'createacct-benefit-body1' => '{{PLURAL:$1|次编辑}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|个页面}}',
 'createacct-benefit-body3' => '位最近{{PLURAL:$1|贡献者}}',
@@ -1072,7 +1072,7 @@ $2
 'anontalkpagetext' => "---- ''这是一个还未建立账户的匿名用户的讨论页, 因此我们只能用IP地址来与他或她联络。该IP地址可能由几名用户共享。如果您是一名匿名用户并认为此页上的评语与您无关,请[[Special:UserLogin/signup|创建新账户]]或[[Special:UserLogin|登录]]以避免在未来与其他匿名用户混淆。''",
 'noarticletext' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]、<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 编辑本页面]。</span>',
 'noarticletext-nopermission' => '本页面目前没有内容。你可以在其他页面中[[Special:Search/{{PAGENAME}}|搜索本页标题]]或<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索相关日志]</span>,但你没有权限创建本页面。',
-'missing-revision' => '“{{PAGENAME}}”的修订#$1不存在。
+'missing-revision' => '“{{FULLPAGENAME}}”的修订#$1不存在。
 
 这通常是因为进入了一个已被删除的页面的历史链接。
 详细信息可以在[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]中找到。',
@@ -1271,8 +1271,9 @@ $3给出的原因是“$2”。",
 'revdelete-no-file' => '指定的文件不存在。',
 'revdelete-show-file-confirm' => '确定要查看文件“<nowiki>$1</nowiki>”于$2$3被删除的版本吗?',
 'revdelete-show-file-submit' => '是',
-'revdelete-selected' => "'''选取'''[[:$1]]'''的$2次修订:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|选取的日志项目}}:'''",
+'revdelete-selected-text' => '已选择[[:$2]]的$1个版本:',
+'revdelete-selected-file' => '已选择文件[[:$2]]的$1个版本:',
+'logdelete-selected' => '{{PLURAL:$1|选取的日志项目}}:',
 'revdelete-text-text' => '已删除修订仍将在页面历史中显示,但涉及部分的内容将对公众不可见。',
 'revdelete-text-file' => '已删除文件版本仍将在文件历史中显示,但涉及部分的内容将对公众不可见。',
 'logdelete-text' => '已删除日志事件仍将在日志中显示,但涉及部分的内容将对公众不可见。',
@@ -1417,7 +1418,7 @@ $1",
 'showingresultsheader' => "关于'''$4'''的{{PLURAL:$5|第'''$1'''条结果,共'''$3'''条结果|第'''$1~$2'''条结果,共'''$3'''条结果}}",
 'search-nonefound' => '找不到和查询相匹配的结果。',
 'powersearch-legend' => '高级搜索',
-'powersearch-ns' => '在以下的名字空间中搜索:',
+'powersearch-ns' => '搜索名字空间:',
 'powersearch-redir' => '列出重定向',
 'powersearch-togglelabel' => '选择:',
 'powersearch-toggleall' => '全选',
@@ -1572,7 +1573,7 @@ $1",
 'group-sysop' => '管理员',
 'group-bureaucrat' => '行政员',
 'group-suppress' => '监督',
-'group-all' => '(全部)',
+'group-all' => '(所有)',
 
 'group-user-member' => '{{GENDER:$1|用户}}',
 'group-autoconfirmed-member' => '自动确认用户',
@@ -1744,7 +1745,7 @@ $1",
 'rcshowhidemine' => '$1我的编辑',
 'rcshowhidemine-show' => '显示',
 'rcshowhidemine-hide' => '隐藏',
-'rclinks' => '显示最后$2天的最后$1个更改<br />$3',
+'rclinks' => '显示过去$2天的最后$1个更改<br />$3',
 'diff' => '差异',
 'hist' => '历史',
 'hide' => '隐藏',
@@ -2012,7 +2013,7 @@ $1',
 'file-anchor-link' => '文件',
 'filehist' => '文件历史',
 'filehist-help' => '单击某个日期/时间查看对应时刻的文件。',
-'filehist-deleteall' => '删除全部',
+'filehist-deleteall' => '删除所有',
 'filehist-deleteone' => '删除',
 'filehist-revert' => '恢复',
 'filehist-current' => '当前',
@@ -2023,7 +2024,7 @@ $1',
 'filehist-user' => '用户',
 'filehist-dimensions' => '大小',
 'filehist-filesize' => '文件大小',
-'filehist-comment' => '评论',
+'filehist-comment' => '备注',
 'filehist-missing' => '文件遗失',
 'imagelinks' => '文件用途',
 'linkstoimage' => '以下{{PLURAL:$1|页面|$1个页面}}链接至本文件:',
@@ -2398,7 +2399,7 @@ $1',
 'watchmethod-list' => '查看监视页中的最新修改',
 'watchlistcontains' => '您的监视列表包含$1个页面。',
 'iteminvalidname' => "页面'$1'错误,无效命名...",
-'wlnote2' => '以ä¸\8bæ\98¯æ\9c\80è¿\91<strong>$1</strong>å°\8fæ\97¶ç\9a\84å\8f\98å\8c\96,截至$2 $3。',
+'wlnote2' => 'ä¸\8bé\9d¢æ\98¯è¿\87å\8e»{{PLURAL:$1|<strong>$1</strong>å°\8fæ\97¶}}ç\9a\84æ\9b´æ\94¹,截至$2 $3。',
 'wlshowlast' => '显示过去$1小时$2天$3',
 'watchlist-options' => '监视列表选项',
 
@@ -2665,13 +2666,13 @@ $1',
 'isredirect' => '重定向页面',
 'istemplate' => '包含',
 'isimage' => '文件链接',
-'whatlinkshere-prev' => '上$1个',
-'whatlinkshere-next' => '下$1个',
-'whatlinkshere-links' => '←链入页面',
-'whatlinkshere-hideredirs' => '$1重定向',
-'whatlinkshere-hidetrans' => '$1å\8c\85å\90«',
+'whatlinkshere-prev' => '{{PLURAL:$1|前|前$1个}}',
+'whatlinkshere-next' => '{{PLURAL:$1|后|后$1个}}',
+'whatlinkshere-links' => '←链',
+'whatlinkshere-hideredirs' => '$1重定向',
+'whatlinkshere-hidetrans' => '$1åµ\8cå\85¥',
 'whatlinkshere-hidelinks' => '$1链接',
-'whatlinkshere-hideimages' => '$1文件链接',
+'whatlinkshere-hideimages' => '$1文件链接',
 'whatlinkshere-filters' => '过滤器',
 
 # Block/unblock
@@ -2908,7 +2909,7 @@ $1被封禁的理由是“$2”',
 
 此外您还可以利用链接导出文件,例如您可以使用[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]导出“[[{{MediaWiki:Mainpage}}]]”页面。',
 'exportall' => '导出所有页面',
-'exportcuronly' => 'ä»\85å\8c\85å\90«å½\93å\89\8dç\9a\84修订ï¼\8cè\80\8cä¸\8dæ\98¯å\85¨é\83¨ç\9a\84历史。',
+'exportcuronly' => 'ä»\85å\8c\85å\90«å½\93å\89\8dç\89\88æ\9c¬ï¼\8cè\80\8cä¸\8dæ\98¯å®\8cæ\95´历史。',
 'exportnohistory' => "----
 '''注意:'''由于性能原因,从此表单导出页面的全部历史已被禁用。",
 'exportlistauthors' => '为每个页面包含贡献者的完整列表',
@@ -2932,7 +2933,7 @@ $1被封禁的理由是“$2”',
 'allmessages-filter-legend' => '过滤',
 'allmessages-filter' => '按自定义状态过滤:',
 'allmessages-filter-unmodified' => '未修改',
-'allmessages-filter-all' => '全部',
+'allmessages-filter-all' => '所有',
 'allmessages-filter-modified' => '曾修改',
 'allmessages-prefix' => '以前缀过滤:',
 'allmessages-language' => '语言:',
@@ -3056,7 +3057,7 @@ $2',
 'tooltip-n-recentchanges' => '本wiki最近更改的列表',
 'tooltip-n-randompage' => '载入一个随机页面',
 'tooltip-n-help' => '查找帮助的地方',
-'tooltip-t-whatlinkshere' => '所有链至本页的维基页面的列表',
+'tooltip-t-whatlinkshere' => '所有链接至本页面的wiki页面的列表',
 'tooltip-t-recentchangeslinked' => '链自本页的页面的最近更改',
 'tooltip-feed-rss' => '本页面的RSS源',
 'tooltip-feed-atom' => '本页面的Atom源',
@@ -3732,8 +3733,8 @@ Variants for Chinese language
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => '所有',
-'namespacesall' => '全部',
-'monthsall' => '全部',
+'namespacesall' => '所有',
+'monthsall' => '所有',
 
 # Email address confirmation
 'confirmemail' => '确认邮箱地址',
@@ -3820,6 +3821,7 @@ $5
 # Separators for various lists, etc.
 'comma-separator' => '、',
 'colon-separator' => ':',
+'pipe-separator' => '&#32;|&#32;',
 'word-separator' => '',
 'parentheses' => '($1)',
 'quotation-marks' => '“$1”',
@@ -3886,7 +3888,7 @@ $5
 'watchlistedit-raw-removed' => '$1个标题被删除:',
 
 # Watchlist editing tools
-'watchlisttools-view' => '查看关更改',
+'watchlisttools-view' => '查看关更改',
 'watchlisttools-edit' => '查看并编辑监视列表',
 'watchlisttools-raw' => '编辑原始监视列表',
 
index 438188e..424a19e 100644 (file)
@@ -980,7 +980,7 @@ $2
 或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 編輯此頁]</span>。',
 'noarticletext-nopermission' => '此頁目前沒有內容。
 您可以在其它頁[[Special:Search/{{PAGENAME}}|搜尋此頁標題]],或<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋有關日誌]</span>,但您沒有權限建立此頁。',
-'missing-revision' => '「{{PAGENAME}}」的#$1修訂版本不存在。
+'missing-revision' => '「{{FULLPAGENAME}}」的#$1修訂版本不存在。
 
 這通常是因為過時的頁面歷史鏈接被刪除。
 詳情請閱[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。',
@@ -1201,8 +1201,9 @@ $3所述禁止原因為“$2”。",
 'revdelete-no-file' => '指定的檔案不存在。',
 'revdelete-show-file-confirm' => '{{GENDER:|你|妳|你}}是否真的是想去檢視於$2 $3刪除「<nowiki>$1</nowiki>」的檔案修訂?',
 'revdelete-show-file-submit' => '是',
-'revdelete-selected' => "'''選取[[:$1]]的$2次修訂:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|選取的日誌項目}}:'''",
+'revdelete-selected-text' => '已選定[[:$2]]之$1個版本:',
+'revdelete-selected-file' => '已選定檔案[[:$2]]之$1個版本:',
+'logdelete-selected' => '{{PLURAL:$1|選取的日誌項目}}:',
 'revdelete-text-text' => '已刪除修訂版本仍將出現於頁面歷史中,唯將不公開內容訪問。',
 'revdelete-text-file' => '已刪除檔案版本仍將出現於檔案歷史中,唯將不公開內容訪問。',
 'logdelete-text' => '已刪除日誌活動仍將出現於日誌中,唯將不公開內容訪問。',
@@ -2597,8 +2598,8 @@ $1',
 'contribsub2' => '{{GENDER:$3|$1}} 的貢獻 ($2)',
 'nocontribs' => '沒有找到符合特徵的更改。',
 'uctop' => '(最新修改)',
-'month' => '從該月份 (或更早):',
-'year' => '從該年份 (或更早):',
+'month' => '截止月份:',
+'year' => '截止年份:',
 
 'sp-contributions-newbies' => '只顯示新建立之用戶的貢獻',
 'sp-contributions-newbies-sub' => '新手',
@@ -2634,7 +2635,7 @@ $1',
 'whatlinkshere-next' => '後$1個',
 'whatlinkshere-links' => '← 連入',
 'whatlinkshere-hideredirs' => '$1重定向',
-'whatlinkshere-hidetrans' => '$1å\8c\85å\90«',
+'whatlinkshere-hidetrans' => '$1åµ\8cå\85¥',
 'whatlinkshere-hidelinks' => '$1連結',
 'whatlinkshere-hideimages' => '$1檔案連結',
 'whatlinkshere-filters' => '搜尋',
index 9471c65..fb3c764 100644 (file)
--- a/load.php5
+++ b/load.php5
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of load.php to used in web server requiring .php5 extension
- * to execute scripts with PHP5 engine.
+ * Version of load.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 32ecb1d..6d7de09 100644 (file)
@@ -86,7 +86,7 @@ class FindHooks extends Maintenance {
                        $IP . '/includes/htmlform/',
                        $IP . '/includes/installer/',
                        $IP . '/includes/interwiki/',
-                       $IP . '/includes/job/',
+                       $IP . '/includes/jobqueue/',
                        $IP . '/includes/json/',
                        $IP . '/includes/logging/',
                        $IP . '/includes/media/',
index 3b2374d..27a9ff1 100644 (file)
@@ -103,6 +103,17 @@ class GenerateJsonI18n extends Maintenance {
        protected function doShim( $jsondir ) {
                $shim = <<<'PHP'
 <?php
+/**
+ * This is a backwards-compatibility shim, generated by:
+ * https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
+ *
+ * Beginning with MediaWiki 1.23, translation strings are stored in json files,
+ * and the EXTENSION.i18n.php file only exists to provide compatibility with
+ * older releases of MediaWiki. For more information about this migration, see:
+ * https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
+ *
+ * This shim maintains compatibility back to MediaWiki 1.17.
+ */
 $messages = array();
 $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = function ( $cache, $code, &$cachedData ) {
        $codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
index 837c00c..c9736df 100644 (file)
                "../../resources/mediawiki.page/mediawiki.page.watch.ajax.js",
                "../../resources/mediawiki.api",
                "../../resources/mediawiki.language",
+               "../../resources/jquery/jquery.arrowSteps.js",
+               "../../resources/jquery/jquery.autoEllipsis.js",
+               "../../resources/jquery/jquery.badge.js",
+               "../../resources/jquery/jquery.byteLimit.js",
                "../../resources/jquery/jquery.localize.js",
                "../../resources/jquery/jquery.spinner.js",
                "../../resources/oojs",
index 6b5506e..67b21e9 100644 (file)
@@ -869,7 +869,8 @@ $wgMessageStructure = array(
                'revdelete-no-file',
                'revdelete-show-file-confirm',
                'revdelete-show-file-submit',
-               'revdelete-selected',
+               'revdelete-selected-text',
+               'revdelete-selected-file',
                'logdelete-selected',
                'revdelete-text-text',
                'revdelete-text-file',
index 622712e..4254887 100755 (executable)
@@ -16,6 +16,5 @@ MWCORE_DIR=$(cd $(dirname $0)/..; pwd)
 jsduck \
 --config=$MWCORE_DIR/maintenance/jsduck/config.json \
 --footer="Documentation for MediaWiki core ($JSDUCK_MWVERSION). Generated on {DATE} by {JSDUCK} {VERSION}." \
-&& echo 'JSDuck execution finished.'
-
-ln -s ../../resources $MWCORE_DIR/docs/js/modules
+&& echo 'JSDuck execution finished.' \
+&& ln -s ../../resources $MWCORE_DIR/docs/js/modules
index 570b426..fc7eadb 100644 (file)
@@ -23,6 +23,8 @@
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
 define( 'MEDIAWIKI_INSTALL', true );
 
+// Resolve relative to regular MediaWiki root
+// instead of mw-config subdirectory.
 chdir( dirname( __DIR__ ) );
 require dirname( __DIR__ ) . '/includes/WebStart.php';
 
index bc9e891..8898653 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of mw-config/index.php to used in web server requiring .php5
- * extension to execute scripts with PHP5 engine.
+ * Version of mw-config/index.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,5 +21,6 @@
  * @file
  */
 
-define('MW_INSTALL_PHP5_EXT', 1);
+define( 'MW_INSTALL_PHP5_EXT', 1 );
+
 require './index.php';
index 0c499a4..a4dde37 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of opensearch_desc.php to used in web server requiring .php5 extension
- * to execute scripts with PHP5 engine.
+ * Version of opensearch_desc.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/profileinfo.php5 b/profileinfo.php5
new file mode 100644 (file)
index 0000000..14ef421
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Version of profileinfo.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+require './profileinfo.php';
index 0d9608f..1b7aeb1 100644 (file)
@@ -8,10 +8,12 @@ kss: nodecheck
        $(eval KSS_RL_TMP := $(shell mktemp /tmp/tmp.XXXXXXXXXX))
        @curl -sG "${MEDIAWIKI_LOAD_URL}?modules=mediawiki.ui|mediawiki.ui.button&only=styles" > $(KSS_RL_TMP)
        @node_modules/.bin/kss-node mediawiki.ui mediawiki.ui/docs --css $(KSS_RL_TMP) -t styleguide-template
+       @rm $(KSS_RL_TMP)
+
+kssopen: kss
        @echo Opening the generated style guide...
-       @command -v xdg-open >/dev/null 2>&1 || { open ${PWD}/mediawiki.ui/docs/index.html; exit 1; }
+       @command -v xdg-open >/dev/null 2>&1 || { open ${PWD}/mediawiki.ui/docs/index.html; exit 0; }
        @xdg-open ${PWD}/mediawiki.ui/docs/index.html
-       @rm $(KSS_RL_TMP)
 
 nodecheck:
        @scripts/nodecheck.sh
index 49b8fda..cf07bd0 100644 (file)
@@ -1378,7 +1378,7 @@ return array(
                ),
                'skinStyles' => array(
                        'default' => 'resources/oojs-ui/oojs-ui-apex.css',
-                       'minerva' => array(),
+                       'minerva' => 'resources/oojs-ui/oojs-ui-agora.css',
                ),
                'messages' => array(
                        'ooui-dialog-action-close',
index a1fd679..c44e7c5 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*!
  * jQuery arrowSteps plugin
  * Copyright Neil Kandalgaonkar, 2010
  *
@@ -7,40 +7,33 @@
  * (see http://www.fsf.org/licensing/licenses/gpl.html).
  * Derivative works and later versions of the code must be free software
  * licensed under the same or a compatible license.
- *
- *
- * DESCRIPTION
- *
- * Show users their progress through a series of steps, via a row of items that fit
- * together like arrows. One item can be highlighted at a time.
- *
- *
- * SYNOPSIS
- *
- * <ul id="robin-hood-daffy">
- *   <li id="guard"><div>Guard!</div></li>
- *   <li id="turn"><div>Turn!</div></li>
- *   <li id="parry"><div>Parry!</div></li>
- *   <li id="dodge"><div>Dodge!</div></li>
- *   <li id="spin"><div>Spin!</div></li>
- *   <li id="ha"><div>Ha!</div></li>
- *   <li id="thrust"><div>Thrust!</div></li>
- * </ul>
- *
- * <script>
- *   $( '#robin-hood-daffy' ).arrowSteps();
- *
- *   $( '#robin-hood-daffy' ).arrowStepsHighlight( '#guard' );
- *   // 'Guard!' is highlighted.
- *
- *   // ... user completes the 'guard' step ...
- *
- *   $( '#robin-hood-daffy' ).arrowStepsHighlight( '#turn' );
- *   // 'Turn!' is highlighted.
- * </script>
- *
+ */
+
+/**
+ * @class jQuery.plugin.arrowSteps
  */
 ( function ( $ ) {
+       /**
+        * Show users their progress through a series of steps, via a row of items that fit
+        * together like arrows. One item can be highlighted at a time.
+        *
+        *     <ul id="robin-hood-daffy">
+        *       <li id="guard"><div>Guard!</div></li>
+        *       <li id="turn"><div>Turn!</div></li>
+        *       <li id="parry"><div>Parry!</div></li>
+        *       <li id="dodge"><div>Dodge!</div></li>
+        *       <li id="spin"><div>Spin!</div></li>
+        *       <li id="ha"><div>Ha!</div></li>
+        *       <li id="thrust"><div>Thrust!</div></li>
+        *     </ul>
+        *
+        *     <script>
+        *       $( '#robin-hood-daffy' ).arrowSteps();
+        *     </script>
+        *
+        * @return {jQuery}
+        * @chainable
+        */
        $.fn.arrowSteps = function () {
                var $steps, width, arrowWidth,
                        paddingSide = $( 'body' ).hasClass( 'rtl' ) ? 'padding-left' : 'padding-right';
                return this;
        };
 
+       /**
+        * Highlights the element selected by the selector.
+        *
+        *       $( '#robin-hood-daffy' ).arrowStepsHighlight( '#guard' );
+        *       // 'Guard!' is highlighted.
+        *
+        *       // ... user completes the 'guard' step ...
+        *
+        *       $( '#robin-hood-daffy' ).arrowStepsHighlight( '#turn' );
+        *       // 'Turn!' is highlighted.
+        *
+        * @param {string} selector
+        */
        $.fn.arrowStepsHighlight = function ( selector ) {
                var $previous,
                        $steps = this.data( 'arrowSteps' );
@@ -79,4 +85,8 @@
                } );
        };
 
+       /**
+        * @class jQuery
+        * @mixins jQuery.plugin.arrowSteps
+        */
 }( jQuery ) );
index a473f61..57d8f94 100644 (file)
@@ -1,6 +1,5 @@
 /**
- * Plugin that automatically truncates the plain text contents of an element
- * and adds an ellipsis.
+ * @class jQuery.plugin.autoEllipsis
  */
 ( function ( $ ) {
 
@@ -11,6 +10,21 @@ var
        // Use a separate cache when match highlighting is enabled
        matchTextCache = {};
 
+/**
+ * Automatically truncate the plain text contents of an element and add an ellipsis
+ *
+ * @param {Object} options
+ * @param {'center'|'left'|'right'} [options.position='center'] Where to remove text.
+ * @param {boolean} [options.tooltip=false] Whether to show a tooltip with the remainder
+ * of the text.
+ * @param {boolean} [options.restoreText=false] Whether to save the text for restoring
+ * later.
+ * @param {boolean} [options.hasSpan=false] Whether the element is already a container,
+ * or if the library should create a new container for it.
+ * @param {string|null} [options.matchText=null] Text to highlight, e.g. search terms.
+ * @return {jQuery}
+ * @chainable
+ */
 $.fn.autoEllipsis = function ( options ) {
        options = $.extend( {
                position: 'center',
@@ -146,4 +160,9 @@ $.fn.autoEllipsis = function ( options ) {
        } );
 };
 
+/**
+ * @class jQuery
+ * @mixins jQuery.plugin.autoEllipsis
+ */
+
 }( jQuery ) );
index 9404e81..023b6e2 100644 (file)
@@ -1,10 +1,8 @@
-/**
+/*!
  * jQuery Badge plugin
  *
  * @license MIT
- */
-
-/**
+ *
  * @author Ryan Kaldari <rkaldari@wikimedia.org>, 2012
  * @author Andrew Garrett <agarrett@wikimedia.org>, 2012
  * @author Marius Hoch <hoo@online.de>, 2012
  *
  * This program is distributed WITHOUT ANY WARRANTY.
  */
+
+/**
+ * @class jQuery.plugin.badge
+ */
 ( function ( $, mw ) {
        /**
-        * Allows you to put a "badge" on an item on the page. The badge container
-        * will be appended to the selected element(s).
-        * See mediawiki.org/wiki/ResourceLoader/Default_modules#jQuery.badge
+        * Put a badge on an item on the page. The badge container will be appended to the selected element(s).
+        *
+        *     $element.badge( text );
+        *     $element.badge( 5 );
+        *     $element.badge( '100+' );
+        *     $element.badge( text, inline );
+        *     $element.badge( 'New', true );
         *
         * @param {number|string} text The value to display in the badge. If the value is falsey (0,
         *  null, false, '', etc.), any existing badge will be removed.
-        * @param {boolean} inline True if the badge should be displayed inline, false
-        *  if the badge should overlay the parent element (default is inline)
-        * @param {boolean} displayZero True if the number zero should be displayed,
+        * @param {boolean} [inline=true] True if the badge should be displayed inline, false
+        *  if the badge should overlay the parent element.
+        * @param {boolean} [displayZero=false] True if the number zero should be displayed,
         *  false if the number zero should result in the badge being hidden
-        *  (default is zero will result in the badge being hidden)
+        * @return {jQuery}
+        * @chainable
         */
        $.fn.badge = function ( text, inline, displayZero ) {
                var $badge = this.find( '.mw-badge' ),
@@ -73,4 +80,9 @@
                }
                return this;
        };
+
+       /**
+        * @class jQuery
+        * @mixins jQuery.plugin.badge
+        */
 }( jQuery, mediaWiki ) );
index b398fdd..17c1821 100644 (file)
@@ -1,8 +1,5 @@
 /**
- * jQuery byteLimit plugin.
- *
- * @author Jan Paul Posma, 2011
- * @author Timo Tijhof, 2011-2012
+ * @class jQuery.plugin.byteLimit
  */
 ( function ( $ ) {
 
         * "fobo", not "foba". Basically emulating the native maxlength by
         * reconstructing where the insertion occured.
         *
+        * @private
         * @param {string} safeVal Known value that was previously returned by this
         * function, if none, pass empty string.
         * @param {string} newVal New value that may have to be trimmed down.
         * @param {number} byteLimit Number of bytes the value may be in size.
-        * @param {Function} fn [optional] See $.fn.byteLimit.
-        * @return {Object} Object with:
-        *  - {string} newVal
-        *  - {boolean} trimmed
+        * @param {Function} [fn] See jQuery.byteLimit.
+        * @return {Object}
+        * @return {string} return.newVal
+        * @return {boolean} return.trimmed
         */
        function trimValForByteLength( safeVal, newVal, byteLimit, fn ) {
                var startMatches, endMatches, matchesLen, inpParts,
         * value), a filter function (in case the limit should apply to something other than the
         * exact input value), or both. Order of parameters is important!
         *
-        * @context {jQuery} Instance of jQuery for one or more input elements
-        * @param {Number} limit [optional] Limit to enforce, fallsback to maxLength-attribute,
+        * @param {number} [limit] Limit to enforce, fallsback to maxLength-attribute,
         *  called with fetched value as argument.
-        * @param {Function} fn [optional] Function to call on the string before assessing the length.
-        * @return {jQuery} The context
+        * @param {Function} [fn] Function to call on the string before assessing the length.
+        * @return {jQuery}
+        * @chainable
         */
        $.fn.byteLimit = function ( limit, fn ) {
                // If the first argument is the function,
                        } );
                } );
        };
+
+       /**
+        * @class jQuery
+        * @mixins jQuery.plugin.byteLimit
+        */
 }( jQuery ) );
index 8c8fb56..f499e10 100644 (file)
@@ -99,12 +99,12 @@ function msg( options, key ) {
  * Appends something like this to the body...
  *     <p>You may not get there all in one piece.</p>
  *
- * @method
  * @param {Object} options Map of options to be used while localizing
  * @param {string} options.prefix String to prepend to all message keys
  * @param {Object} options.keys Message key aliases, used for remapping keys to a template
  * @param {Object} options.params Lists of parameters to use with certain message keys
  * @return {jQuery}
+ * @chainable
  */
 $.fn.localize = function ( options ) {
        var $target = this,
index 4321b1b..7435e04 100644 (file)
@@ -7,7 +7,8 @@
        $.extend( mw.Api.prototype, {
                /**
                 * Determine if a category exists.
-                * @param {mw.Title} title
+                *
+                * @param {mw.Title|string} title
                 * @param {Function} [ok] Success callback (deprecated)
                 * @param {Function} [err] Error callback (deprecated)
                 * @return {jQuery.Promise}
@@ -46,7 +47,7 @@
                /**
                 * Get a list of categories that match a certain prefix.
                 *
-                * E.g. given "Foo", return "Food", "Foolish people", "Foosball tables" ...
+                * E.g. given "Foo", return "Food", "Foolish people", "Foosball tables"...
                 *
                 * @param {string} prefix Prefix to match.
                 * @param {Function} [ok] Success callback (deprecated)
@@ -85,8 +86,9 @@
                },
 
                /**
-                * Get the categories that a particular page on the wiki belongs to
-                * @param {mw.Title} title
+                * Get the categories that a particular page on the wiki belongs to.
+                *
+                * @param {mw.Title|string} title
                 * @param {Function} [ok] Success callback (deprecated)
                 * @param {Function} [err] Error callback (deprecated)
                 * @param {boolean} [async=true] Asynchronousness
                                .fail( err )
                                .promise( { abort: apiPromise.abort } );
                }
-
        } );
 
        /**
index 952dea4..b1f1d2b 100644 (file)
@@ -5,7 +5,7 @@
 
        $.extend( mw.Api.prototype, {
                /**
-                * Convinience method for 'action=parse'.
+                * Convenience method for 'action=parse'.
                 *
                 * @param {string} wikitext
                 * @param {Function} [ok] Success callback (deprecated)
index 9d65e1f..aa33d86 100644 (file)
@@ -24,7 +24,7 @@
         */
        function doWatchInternal( pages, ok, err, addParams ) {
                // XXX: Parameter addParams is undocumented because we inherit this
-               // documentation in the public method..
+               // documentation in the public method...
                var apiPromise = this.post(
                        $.extend(
                                {
@@ -70,7 +70,6 @@
                unwatch: function ( pages, ok, err ) {
                        return doWatchInternal.call( this, pages, ok, err, { unwatch: 1 } );
                }
-
        } );
 
        /**
index 4282a3d..56fa0da 100644 (file)
@@ -13,7 +13,7 @@
         *
         * Example: Fill the string to length 10 with '+' characters on the right.
         *
-        *     pad('blah', 10, '+', true); // => 'blah++++++'
+        *     pad( 'blah', 10, '+', true ); // => 'blah++++++'
         *
         * @private
         * @param {string} text The string to pad
@@ -59,7 +59,7 @@
         * consideration to local customs.
         *
         * Adapted from dojo/number library with thanks
-        * http://dojotoolkit.org/reference-guide/1.8/dojo/number.html
+        * <http://dojotoolkit.org/reference-guide/1.8/dojo/number.html>
         *
         * @private
         * @param {number} value the number to be formatted, ignores sign
index 05045d5..e576937 100644 (file)
@@ -3,8 +3,5 @@
  * Vector.
  */
 
-// FIXME: remove import for button styles as soon as extensions using mediawiki.ui are
-// updated to use mediawiki.ui.button as well.
 @import "components/utilities";
-@import "components/default/buttons";
 @import "components/default/forms";
index d084731..08690a3 100644 (file)
@@ -2,9 +2,6 @@
  * Provide Agora appearance for mw-ui-* classes when using the Vector skin.
  */
 
-// FIXME: remove import for button styles as soon as extensions using mediawiki.ui are
-// updated to use mediawiki.ui.button as well.
-
 // Typography
 //
 // We prefer the usage of Georgia Bold for all headings. Georgia Regular is used to place emphasis on pull-out or short quotations. This latter usage should be used sparingly. 
@@ -24,6 +21,5 @@
 // Styleguide 1.
 
 @import "components/utilities";
-@import "components/vector/buttons";
 @import "components/vector/forms";
 @import "components/vector/containers";
index 8a7aec2..b7b818f 100644 (file)
 
                /**
                 * Example to declare existing titles:
+                *
                 *     Title.exist.set( ['User:John_Doe', ...] );
-                * Eample to declare titles nonexistent:
+                *
+                * Example to declare titles nonexistent:
+                *
                 *     Title.exist.set( ['File:Foo_bar.jpg', ...], false );
                 *
                 * @static
index a750106..5566312 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * Library for simple URI parsing and manipulation. Dependencies: mw, jQuery.
+ * Library for simple URI parsing and manipulation.
  *
  * Intended to be minimal, but featureful; do not expect full RFC 3986 compliance. The use cases we
  * have in mind are constructing 'next page' or 'previous page' URLs, detecting whether we need to
@@ -44,8 +44,8 @@
  * (N.b., 'password' is technically not allowed for HTTP URIs, but it is possible with other kinds
  * of URIs.)
  *
- * Parsing based on parseUri 1.2.2 (c) Steven Levithan <stevenlevithan.com>, MIT License.
- * http://stevenlevithan.com/demo/parseuri/js/
+ * Parsing based on parseUri 1.2.2 (c) Steven Levithan <http://stevenlevithan.com>, MIT License.
+ * <http://stevenlevithan.com/demo/parseuri/js/>
  *
  * @class mw.Uri
  */
index 0284e68..5ba1a54 100644 (file)
@@ -10,6 +10,7 @@
         *
         * @param {boolean} [instantToggle=false]
         * @return {jQuery}
+        * @chainable
         */
        $.fn.goIn = function ( instantToggle ) {
                if ( instantToggle === true ) {
@@ -23,6 +24,7 @@
         *
         * @param {boolean} [instantToggle=false]
         * @return jQuery
+        * @chainable
         */
        $.fn.goOut = function ( instantToggle ) {
                if ( instantToggle === true ) {
index 1080df3..d8a17f6 100644 (file)
@@ -1052,12 +1052,12 @@ var mw = ( function ( $, undefined ) {
                                        // Can't use jQuery.getScript because that only uses <script> for cross-domain,
                                        // it uses XHR and eval for same-domain scripts, which we don't want because it
                                        // messes up line numbers.
-                                       // The below is based on jQuery ([jquery@1.8.2]/src/ajax/script.js)
+                                       // The below is based on jQuery ([jquery@1.9.1]/src/ajax/script.js)
 
-                                       // IE-safe way of getting the <head>. document.head isn't supported
-                                       // in old IE, and doesn't work when in the <head>.
+                                       // IE-safe way of getting an append target. In old IE document.head isn't supported
+                                       // and its getElementsByTagName can't find <head> until </head> is parsed.
                                        done = false;
-                                       head = document.getElementsByTagName( 'head' )[0] || document.body;
+                                       head = document.head || document.getElementsByTagName( 'head' )[0] || document.documentElement;
 
                                        script = document.createElement( 'script' );
                                        script.async = true;
@@ -1099,7 +1099,9 @@ var mw = ( function ( $, undefined ) {
                                                        document.body.appendChild( script );
                                                } );
                                        } else {
-                                               head.appendChild( script );
+                                               // Circumvent IE6 bugs with base elements (jqbug.com/2709, jqbug.com/4378)
+                                               // by prepending instead of appending.
+                                               head.insertBefore( script, head.firstChild );
                                        }
                                } else {
                                        document.write( mw.html.element( 'script', { 'src': src }, '' ) );
@@ -1730,36 +1732,45 @@ var mw = ( function ( $, undefined ) {
                                 *
                                 * @param {string|Array} dependencies Module name or array of modules names the callback
                                 *  dependends on to be ready before executing
-                                * @param {Function} [ready] callback to execute when all dependencies are ready
-                                * @param {Function} [error] callback to execute when if dependencies have a errors
+                                * @param {Function} [ready] Callback to execute when all dependencies are ready
+                                * @param {Function} [error] Callback to execute if one or more dependencies failed
+                                * @return {jQuery.Promise}
                                 */
                                using: function ( dependencies, ready, error ) {
-                                       var tod = typeof dependencies;
-                                       // Validate input
-                                       if ( tod !== 'object' && tod !== 'string' ) {
-                                               throw new Error( 'dependencies must be a string or an array, not a ' + tod );
-                                       }
+                                       var deferred = $.Deferred();
+
                                        // Allow calling with a single dependency as a string
-                                       if ( tod === 'string' ) {
+                                       if ( typeof dependencies === 'string' ) {
                                                dependencies = [ dependencies ];
+                                       } else if ( !$.isArray( dependencies ) ) {
+                                               // Invalid input
+                                               throw new Error( 'Dependencies must be a string or an array' );
+                                       }
+
+                                       if ( ready ) {
+                                               deferred.done( ready );
+                                       }
+                                       if ( error ) {
+                                               deferred.fail( error );
                                        }
+
                                        // Resolve entire dependency map
                                        dependencies = resolve( dependencies );
                                        if ( allReady( dependencies ) ) {
                                                // Run ready immediately
-                                               if ( $.isFunction( ready ) ) {
-                                                       ready();
-                                               }
+                                               deferred.resolve();
                                        } else if ( filter( ['error', 'missing'], dependencies ).length ) {
                                                // Execute error immediately if any dependencies have errors
-                                               if ( $.isFunction( error ) ) {
-                                                       error( new Error( 'one or more dependencies have state "error" or "missing"' ),
-                                                               dependencies );
-                                               }
+                                               deferred.reject(
+                                                       new Error( 'One or more dependencies failed to load' ),
+                                                       dependencies
+                                               );
                                        } else {
                                                // Not all dependencies are ready: queue up a request
-                                               request( dependencies, ready, error );
+                                               request( dependencies, deferred.resolve, deferred.reject );
                                        }
+
+                                       return deferred.promise();
                                },
 
                                /**
@@ -1989,7 +2000,7 @@ var mw = ( function ( $, undefined ) {
                                         * The try / catch block is used for JSON & localStorage feature detection.
                                         * See the in-line documentation for Modernizr's localStorage feature detection
                                         * code for a full account of why we need a try / catch:
-                                        * https://github.com/Modernizr/Modernizr/blob/v2.7.1/modernizr.js#L771-L796
+                                        * <https://github.com/Modernizr/Modernizr/blob/v2.7.1/modernizr.js#L771-L796>.
                                         */
                                        init: function () {
                                                var raw, data;
@@ -2224,12 +2235,13 @@ var mw = ( function ( $, undefined ) {
                                 * @param {string} name The tag name.
                                 * @param {Object} attrs An object with members mapping element names to values
                                 * @param {Mixed} contents The contents of the element. May be either:
+                                *
                                 *  - string: The string is escaped.
-                                *  - null or undefined: The short closing form is used, e.g. <br/>.
+                                *  - null or undefined: The short closing form is used, e.g. `<br/>`.
                                 *  - this.Raw: The value attribute is included without escaping.
                                 *  - this.Cdata: The value attribute is included, and an exception is
                                 *   thrown if it contains an illegal ETAGO delimiter.
-                                *   See http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.3.2
+                                *   See <http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.3.2>.
                                 */
                                element: function ( name, attrs, contents ) {
                                        var v, attrName, s = '<' + name;
index 082f807..ffafd33 100644 (file)
                /**
                 * Get the link to a page name (relative to `wgServer`),
                 *
-                * @param {string} str Page name to get the link for.
+                * @param {string} str Page name
                 * @param {Object} [params] A mapping of query parameter names to values,
-                *     e.g. `{ action: 'edit' }`.
-                * @return {string} Location for a page with name of `str` or boolean false on error.
+                *  e.g. `{ action: 'edit' }`
+                * @return {string} Url of the page with name of `str`
                 */
                getUrl: function ( str, params ) {
-                       var url = mw.config.get( 'wgArticlePath' ).replace( '$1',
-                               util.wikiUrlencode( typeof str === 'string' ? str : mw.config.get( 'wgPageName' ) ) );
+                       var url = mw.config.get( 'wgArticlePath' ).replace(
+                               '$1',
+                               util.wikiUrlencode( typeof str === 'string' ? str : mw.config.get( 'wgPageName' ) )
+                       );
+
                        if ( params && !$.isEmptyObject( params ) ) {
-                               url += url.indexOf( '?' ) !== -1 ? '&' : '?';
-                               url += $.param( params );
+                               url += ( url.indexOf( '?' ) !== -1 ? '&' : '?' ) + $.param( params );
                        }
+
                        return url;
                },
 
index 0d822bc..eb53138 100644 (file)
@@ -19,5 +19,6 @@
     "ooui-dialog-action-close": "Cerrar",
     "ooui-outline-control-move-down": "Mover abajo",
     "ooui-outline-control-move-up": "Mover arriba",
+    "ooui-outline-control-remove": "Eliminar elemento",
     "ooui-toolbar-more": "Más"
 }
\ No newline at end of file
index 4af8dbe..aa780e4 100644 (file)
@@ -8,5 +8,6 @@
     "ooui-dialog-action-close": "Sule",
     "ooui-outline-control-move-down": "Liiguta üksust allapoole",
     "ooui-outline-control-move-up": "Liiguta üksust ülespoole",
+    "ooui-outline-control-remove": "Eemalda üksus",
     "ooui-toolbar-more": "Veel"
 }
\ No newline at end of file
index 8b79d34..3c41b3e 100644 (file)
@@ -4,11 +4,13 @@
             "Ansumang",
             "Devayon",
             "Rajesh",
-            "Siddhartha Ghai"
+            "Siddhartha Ghai",
+            "Goelujjwal"
         ]
     },
     "ooui-dialog-action-close": "बंद करें",
     "ooui-outline-control-move-down": "प्रविष्टि नीचे ले जाएँ",
     "ooui-outline-control-move-up": "प्रविष्टि ऊपर ले जाएँ",
+    "ooui-outline-control-remove": "आइटम हटाएँ",
     "ooui-toolbar-more": "अधिक"
 }
\ No newline at end of file
index 4c27b07..df37fe3 100644 (file)
@@ -7,5 +7,6 @@
     "ooui-dialog-action-close": "Жабу",
     "ooui-outline-control-move-down": "Элементті төмен жылжыту",
     "ooui-outline-control-move-up": "Элементті жоғары жылжыту",
+    "ooui-outline-control-remove": "Элементті алып тастау",
     "ooui-toolbar-more": "толығырақ"
 }
\ No newline at end of file
index 9a412f5..d98b0e4 100644 (file)
@@ -1,11 +1,13 @@
 {
     "@metadata": {
         "authors": [
-            "AlimanRuna"
+            "AlimanRuna",
+            "Jduranboger"
         ]
     },
     "ooui-dialog-action-close": "Wichq'ay",
     "ooui-outline-control-move-down": "Qallawata uraykuchiy",
     "ooui-outline-control-move-up": "Qallawata huqariy",
+    "ooui-outline-control-remove": "P'anqa sutikunata qichuy",
     "ooui-toolbar-more": "Aswan"
 }
\ No newline at end of file
diff --git a/resources/oojs-ui/oojs-ui-agora.css b/resources/oojs-ui/oojs-ui-agora.css
new file mode 100644 (file)
index 0000000..8aedde5
--- /dev/null
@@ -0,0 +1,80 @@
+.oo-ui-window-head {
+  height: 3.35em;
+  border-bottom: 1px solid #dddddd;
+}
+
+.oo-ui-window-body {
+  padding: 2em 3.35em;
+}
+
+.oo-ui-window-icon {
+  width: 3.35em;
+  height: 3.35em;
+  background-size: 2em auto;
+  border-left: 1px solid #dddddd;
+}
+
+.oo-ui-window-title {
+  line-height: 3.35em;
+}
+
+.oo-ui-buttonedElement.oo-ui-indicatedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator,
+.oo-ui-buttonedElement.oo-ui-iconedElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+  width: 3.35em;
+  height: 3.35em;
+  background-size: 2em auto;
+}
+
+.oo-ui-optionWidget {
+  padding: 0.8em 1em 0.8em 3.35em;
+  font-weight: bold;
+  border-bottom: 1px solid #dddddd;
+}
+
+.oo-ui-optionWidget.oo-ui-indicatedElement .oo-ui-labeledElement-label {
+  padding-right: 1.5em;
+}
+
+.oo-ui-optionWidget-level-0 {
+  padding-left: 3.5em;
+}
+
+.oo-ui-optionWidget-level-0 .oo-ui-iconedElement-icon {
+  left: 1em;
+}
+
+.oo-ui-optionWidget-level-1 {
+  padding-left: 5em;
+}
+
+.oo-ui-optionWidget-level-1 .oo-ui-iconedElement-icon {
+  left: 2.5em;
+}
+
+.oo-ui-optionWidget-level-2 {
+  padding-left: 6.5em;
+}
+
+.oo-ui-optionWidget-level-2 .oo-ui-iconedElement-icon {
+  left: 4em;
+}
+
+.oo-ui-buttonOptionWidget {
+  padding: 0;
+}
+
+.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
+  color: #ffffff;
+  background: #347bff;
+}
+
+.oo-ui-menuSectionItemWidget {
+  font-weight: normal;
+  color: #777777;
+  border: none;
+}
+
+.oo-ui-textInputWidget input,
+.oo-ui-textInputWidget textarea {
+  padding: .8em 1em;
+}
\ No newline at end of file
index 66a8072..091f4fc 100644 (file)
   box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
 }
 
+.oo-ui-frame-content {
+  font-family: sans-serif;
+  font-size: 0.8em;
+}
+
 .oo-ui-toolbar-bar {
   background: #f8fbfd;
   background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #f1f7fb));
           transition: border-color 300ms ease-in-out;
 }
 
-.oo-ui-toolGroup:hover {
+.oo-ui-toolGroup.oo-ui-widget-enabled:hover {
   border-color: rgba(0, 0, 0, 0.1);
 }
 
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-tool-title {
+.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
   color: #000;
 }
 
+.oo-ui-window-body {
+  padding: 0 0.75em;
+}
+
+.oo-ui-window-icon {
+  width: 2em;
+  height: 2em;
+  margin-right: 0.5em;
+  line-height: 2em;
+}
+
 .oo-ui-window-title {
+  line-height: 2em;
   color: #333;
 }
 
 
 .oo-ui-buttonedElement.oo-ui-indicatedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator,
 .oo-ui-buttonedElement.oo-ui-iconedElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+  width: 1.9em;
+  height: 1.9em;
   opacity: 0.8;
 }
 
 .oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
-  -webkit-transition: opacity 200ms;
-     -moz-transition: opacity 200ms;
-      -ms-transition: opacity 200ms;
-       -o-transition: opacity 200ms;
-          transition: opacity 200ms;
+  /* Don't animate opacities for now, causes wiggling in Chrome (bug 63020) */
+
+  /*.oo-ui-transition(opacity 200ms);*/
+
 }
 
 .oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:hover > .oo-ui-iconedElement-icon,
   border-bottom-right-radius: 0.25em;
 }
 
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
+.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.8;
+}
+
+.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover {
   border-color: rgba(0, 0, 0, 0.2);
 }
 
-.oo-ui-barToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
+.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
   background: #f8fbfd;
   background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
   background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
   box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
 }
 
-.oo-ui-barToolGroup .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
+.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
   border-left-color: rgba(0, 0, 0, 0.1);
 }
 
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  opacity: 0.8;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
   opacity: 0.2;
 }
 
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
   opacity: 0.8;
 }
 
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconedElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconedElement-icon {
   opacity: 1;
 }
 
+.oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
 .oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
   border-color: rgba(0, 0, 0, 0.2);
 }
   opacity: 0.2;
 }
 
+.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatedElement-indicator,
+.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
 .oo-ui-menuToolGroup {
   border-color: rgba(0, 0, 0, 0.1);
 }
 
-.oo-ui-menuToolGroup:hover {
+.oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
   border-color: rgba(0, 0, 0, 0.2);
 }
 
   border-color: rgba(0, 0, 0, 0.25);
 }
 
-.oo-ui-menuToolGroup .oo-ui-tool:hover {
+.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
   background-color: #e1f3ff;
 }
 
+.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
+  color: #ccc;
+}
+
+.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
+.oo-ui-menuToolGroup.oo-ui-widget-disabled {
+  color: #ccc;
+  text-shadow: 0 1px 1px #fff;
+  background-color: #f3f3f3;
+  border-color: #ddd;
+}
+
+.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatedElement-indicator,
+.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
 .oo-ui-popupToolGroup-handle .oo-ui-indicatedElement-indicator,
 .oo-ui-popupToolGroup-handle .oo-ui-iconedElement-icon {
   opacity: 0.8;
   box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
 }
 
+.oo-ui-optionWidget {
+  padding: 0.5em 2em 0.5em 3em;
+}
+
 .oo-ui-optionWidget-highlighted {
   background-color: #e1f3ff;
 }
   background-color: #a7dcff;
 }
 
+.oo-ui-optionWidget.oo-ui-widget-disabled {
+  color: #ccc;
+}
+
 .oo-ui-menuWidget {
   margin-top: -1px;
   background: #fff;
   white-space: nowrap;
 }
 
+.oo-ui-buttonOptionWidget {
+  padding: 0;
+}
+
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
   background-color: transparent;
   opacity: 0.8;
 }
 
+.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
+  color: #ccc;
+  text-shadow: 0 1px 1px #fff;
+  background-color: #f3f3f3;
+  border-color: #ddd;
+}
+
+.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-indicatedElement-indicator {
+  opacity: 0.2;
+}
+
 .oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted {
   background-color: #e1f3ff;
 }
 
 .oo-ui-menuSectionItemWidget {
+  padding: 0.33em 0.75em;
   color: #888;
 }
 
   font-size: 1.1em;
 }
 
+.oo-ui-outlineItemWidget.oo-ui-indicatedElement .oo-ui-labeledElement-label {
+  padding-right: 1.5em;
+}
+
+.oo-ui-outlineItemWidget-level-0 {
+  padding-left: 3.5em;
+}
+
+.oo-ui-outlineItemWidget-level-0 .oo-ui-iconedElement-icon {
+  left: 1em;
+}
+
+.oo-ui-outlineItemWidget-level-1 {
+  padding-left: 5em;
+}
+
+.oo-ui-outlineItemWidget-level-1 .oo-ui-iconedElement-icon {
+  left: 2.5em;
+}
+
+.oo-ui-outlineItemWidget-level-2 {
+  padding-left: 6.5em;
+}
+
+.oo-ui-outlineItemWidget-level-2 .oo-ui-iconedElement-icon {
+  left: 4em;
+}
+
 .oo-ui-outlineItemWidget.oo-ui-optionWidget-selected {
   text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
   background-color: #a7dcff;
   box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
 }
 
+.oo-ui-textInputWidget {
+  width: 20em;
+}
+
 .oo-ui-textInputWidget input,
 .oo-ui-textInputWidget textarea {
+  padding: 0.5em;
   font-family: sans-serif;
   font-size: 1em;
   background-color: #fff;
           transition: border-color 200ms, box-shadow 200ms;
 }
 
+.oo-ui-textInputWidget-decorated input,
+.oo-ui-textInputWidget-decorated textarea {
+  padding-left: 2em;
+}
+
+.oo-ui-textInputWidget-icon {
+  width: 2em;
+}
+
 .oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
   border-color: #a7dcff;
index 19bcdfe..937ff33 100644 (file)
@@ -1,14 +1,14 @@
 /*!
- * OOjs UI v0.1.0
+ * OOjs UI v0.1.0-pre (23fb1b6144)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Mon Mar 24 2014 17:35:46 GMT-0700 (PDT)
+ * Date: Thu Mar 27 2014 14:49:30 GMT-0700 (PDT)
  */
-( function () {
+( function ( OO ) {
 
 'use strict';
 /**
@@ -2932,11 +2932,12 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  * @constructor
  * @param {OO.ui.ToolFactory} toolFactory Factory for creating tools
+ * @param {OO.ui.ToolGroupFactory} toolGroupFactory Factory for creating tool groups
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [actions] Add an actions section opposite to the tools
  * @cfg {boolean} [shadow] Add a shadow below the toolbar
  */
-OO.ui.Toolbar = function OoUiToolbar( toolFactory, config ) {
+OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
        // Configuration initialization
        config = config || {};
 
@@ -2949,6 +2950,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, config ) {
 
        // Properties
        this.toolFactory = toolFactory;
+       this.toolGroupFactory = toolGroupFactory;
        this.groups = [];
        this.tools = {};
        this.$bar = this.$( '<div>' );
@@ -2992,6 +2994,15 @@ OO.ui.Toolbar.prototype.getToolFactory = function () {
        return this.toolFactory;
 };
 
+/**
+ * Get the tool group factory.
+ *
+ * @return {OO.Factory} Tool group factory
+ */
+OO.ui.Toolbar.prototype.getToolGroupFactory = function () {
+       return this.toolGroupFactory;
+};
+
 /**
  * Handles mouse down events.
  *
@@ -3031,13 +3042,7 @@ OO.ui.Toolbar.prototype.initialize = function () {
 OO.ui.Toolbar.prototype.setup = function ( groups ) {
        var i, len, type, group,
                items = [],
-               // TODO: Use a registry instead
-               defaultType = 'bar',
-               constructors = {
-                       'bar': OO.ui.BarToolGroup,
-                       'list': OO.ui.ListToolGroup,
-                       'menu': OO.ui.MenuToolGroup
-               };
+               defaultType = 'bar';
 
        // Cleanup previous groups
        this.reset();
@@ -3054,9 +3059,10 @@ OO.ui.Toolbar.prototype.setup = function ( groups ) {
                                group.label = 'ooui-toolbar-more';
                        }
                }
-               type = constructors[group.type] ? group.type : defaultType;
+               // Check type has been registered
+               type = this.getToolGroupFactory().lookup( group.type ) ? group.type : defaultType;
                items.push(
-                       new constructors[type]( this, $.extend( { '$': this.$ }, group ) )
+                       this.getToolGroupFactory().create( type, this, $.extend( { '$': this.$ }, group ) )
                );
        }
        this.addItems( items );
@@ -3517,6 +3523,43 @@ OO.ui.ToolGroup.prototype.destroy = function () {
        }
        this.$element.remove();
 };
+/**
+ * Factory for tools.
+ *
+ * @class
+ * @extends OO.Factory
+ * @constructor
+ */
+OO.ui.ToolGroupFactory = function OoUiToolGroupFactory() {
+       // Parent constructor
+       OO.Factory.call( this );
+
+       var i, l,
+               defaultClasses = this.constructor.static.getDefaultClasses();
+
+       // Register default toolgroups
+       for ( i = 0, l = defaultClasses.length; i < l; i++ ) {
+               this.register( defaultClasses[i] );
+       }
+};
+
+/* Inheritance */
+
+OO.inheritClass( OO.ui.ToolGroupFactory, OO.Factory );
+
+/* Static Methods */
+
+/**
+ * Get a default set of classes to be registered on construction
+ * @return {Function[]} Default classes
+ */
+OO.ui.ToolGroupFactory.static.getDefaultClasses = function () {
+       return [
+               OO.ui.BarToolGroup,
+               OO.ui.ListToolGroup,
+               OO.ui.MenuToolGroup
+       ];
+};
 /**
  * Layout made of a fieldset and optional legend.
  *
@@ -4558,6 +4601,8 @@ OO.inheritClass( OO.ui.BarToolGroup, OO.ui.ToolGroup );
 OO.ui.BarToolGroup.static.titleTooltips = true;
 
 OO.ui.BarToolGroup.static.accelTooltips = true;
+
+OO.ui.BarToolGroup.static.name = 'bar';
 /**
  * Popup list of tools with an icon and optional label.
  *
@@ -4719,6 +4764,8 @@ OO.inheritClass( OO.ui.ListToolGroup, OO.ui.PopupToolGroup );
 /* Static Properties */
 
 OO.ui.ListToolGroup.static.accelTooltips = true;
+
+OO.ui.ListToolGroup.static.name = 'list';
 /**
  * Drop down menu layout of tools as selectable menu items.
  *
@@ -4752,6 +4799,8 @@ OO.inheritClass( OO.ui.MenuToolGroup, OO.ui.PopupToolGroup );
 
 OO.ui.MenuToolGroup.static.accelTooltips = true;
 
+OO.ui.MenuToolGroup.static.name = 'menu';
+
 /* Methods */
 
 /**
@@ -4772,7 +4821,7 @@ OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
                }
        }
 
-       this.setLabel( labelTexts.join( ', ' ) );
+       this.setLabel( labelTexts.join( ', ' ) || ' ' );
 };
 /**
  * UserInterface popup tool.
@@ -4835,6 +4884,8 @@ OO.ui.PopupTool.prototype.onUpdateState = function () {
 /**
  * Group widget.
  *
+ * Mixin for OO.ui.Widget subclasses.
+ *
  * Use together with OO.ui.ItemWidget to make disabled state inheritable.
  *
  * @class
@@ -4869,6 +4920,8 @@ OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) {
        var i, len;
 
        // Parent method
+       // Note this is calling OO.ui.Widget; we're assuming the class this is mixed into
+       // is a subclass of OO.ui.Widget.
        OO.ui.Widget.prototype.setDisabled.call( this, disabled );
 
        // During construction, #setDisabled is called before the OO.ui.GroupElement constructor
@@ -6643,7 +6696,14 @@ OO.ui.InlineMenuWidget.prototype.getMenu = function () {
  * @param {OO.ui.MenuItemWidget} item Selected menu item
  */
 OO.ui.InlineMenuWidget.prototype.onMenuSelect = function ( item ) {
-       this.setLabel( item.getLabel() );
+       var selectedLabel = item.getLabel();
+
+       // If the label is a DOM element, clone it, because setLabel will append() it
+       if ( selectedLabel instanceof jQuery ) {
+               selectedLabel = selectedLabel.clone();
+       }
+
+       this.setLabel( selectedLabel );
 };
 
 /**
@@ -7975,4 +8035,4 @@ OO.ui.ToggleSwitchWidget.prototype.onClick = function ( e ) {
                this.setValue( !this.value );
        }
 };
-}() );
+}( OO ) );
index b546253..887da4d 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0
+ * OOjs UI v0.1.0-pre (23fb1b6144)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Mon Mar 24 2014 17:35:46 GMT-0700 (PDT)
+ * Date: Thu Mar 27 2014 14:49:30 GMT-0700 (PDT)
  */
 
 /* Textures */
   background: none;
 }
 
-.oo-ui-frame-content {
-  font-family: sans-serif;
-  font-size: 0.8em;
-}
-
 .oo-ui-toolbar {
   clear: both;
 }
   -webkit-touch-callout: none;
 }
 
-.oo-ui-window-body {
-  padding: 0 0.75em;
-}
-
 .oo-ui-window-icon {
   float: left;
-  width: 2em;
-  height: 2em;
-  margin-right: 0.5em;
-  line-height: 2em;
-  background-position: right center;
+  background-position: center center;
   background-repeat: no-repeat;
 }
 
 .oo-ui-window-title {
   float: left;
-  line-height: 2em;
   white-space: nowrap;
   cursor: default;
 }
 .oo-ui-buttonedElement.oo-ui-indicatedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator,
 .oo-ui-buttonedElement.oo-ui-iconedElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
   display: inline-block;
-  width: 1.9em;
-  height: 1.9em;
   vertical-align: middle;
   background-position: center center;
   background-repeat: no-repeat;
   display: block;
   height: 1.5em;
   padding: 0.25em;
-  cursor: pointer;
 }
 
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
   display: none;
 }
 
+.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
+  cursor: pointer;
+}
+
 .oo-ui-listToolGroup .oo-ui-toolGroup-tools {
   padding: 0.25em;
 }
   background-image: /* @embed */ url(images/icons/check.png);
 }
 
+.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
+  cursor: default;
+}
+
 .oo-ui-popupToolGroup {
   position: relative;
   height: 2em;
   line-height: 2.6em;
 }
 
+.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
+  cursor: default;
+}
+
 .oo-ui-popupToolGroup.oo-ui-iconedElement .oo-ui-popupToolGroup-handle .oo-ui-labeledElement-label {
   margin-left: 3em;
 }
 .oo-ui-optionWidget {
   position: relative;
   display: block;
-  padding: 0.5em 2em 0.5em 3em;
   margin: 0;
   list-style: none;
   cursor: pointer;
 }
 
 .oo-ui-optionWidget .oo-ui-labeledElement-label {
+  display: block;
   overflow: hidden;
   line-height: 1.5em;
   text-overflow: ellipsis;
 
 .oo-ui-buttonOptionWidget {
   display: inline-block;
-  padding: 0;
   background-color: transparent;
 }
 
 }
 
 .oo-ui-inlineMenuWidget .oo-ui-menuWidget {
+  z-index: 1;
   width: 100%;
 }
 
+.oo-ui-inlineMenuWidget.oo-ui-widget-disabled .oo-ui-inlineMenuWidget-handle {
+  cursor: default;
+}
+
 .oo-ui-menuItemWidget {
   position: relative;
 }
 }
 
 .oo-ui-menuSectionItemWidget {
-  padding: 0.33em 0.75em;
   cursor: default;
 }
 
   -webkit-touch-callout: none;
 }
 
-.oo-ui-outlineItemWidget.oo-ui-indicatedElement .oo-ui-labeledElement-label {
-  padding-right: 1.5em;
-}
-
-.oo-ui-outlineItemWidget-level-0 {
-  padding-left: 3.5em;
-}
-
-.oo-ui-outlineItemWidget-level-0 .oo-ui-iconedElement-icon {
-  left: 1em;
-}
-
-.oo-ui-outlineItemWidget-level-1 {
-  padding-left: 5em;
-}
-
-.oo-ui-outlineItemWidget-level-1 .oo-ui-iconedElement-icon {
-  left: 2.5em;
-}
-
-.oo-ui-outlineItemWidget-level-2 {
-  padding-left: 6.5em;
-}
-
-.oo-ui-outlineItemWidget-level-2 .oo-ui-iconedElement-icon {
-  left: 4em;
-}
-
 .oo-ui-popupButtonWidget {
   position: relative;
 }
 
 .oo-ui-textInputWidget {
   position: relative;
-  width: 20em;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
 .oo-ui-textInputWidget textarea {
   display: inline-block;
   width: 100%;
-  padding: 0.5em;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
   resize: none;
 }
 
-.oo-ui-textInputWidget-decorated input,
-.oo-ui-textInputWidget-decorated textarea {
-  padding-left: 2em;
-}
-
 .oo-ui-textInputWidget-icon {
   position: absolute;
   top: 0;
   left: 0;
-  width: 2em;
   height: 100%;
   background-position: right center;
   background-repeat: no-repeat;
 .oo-ui-toggleSwitchWidget {
   position: relative;
   display: inline-block;
-  width: 3em;
+  width: 4em;
   height: 2em;
   overflow: hidden;
   vertical-align: middle;
 }
 
 .oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-  left: 1.25em;
+  left: 2.25em;
   margin-left: -2px;
 }
 
index 6cf631f..edc7425 100755 (executable)
@@ -78,7 +78,7 @@ NEWCHANGESDISPLAY=$(git log $OLDVERSION.. --oneline --no-merges --reverse --colo
 cd -
 
 # Copy files from dist/ to resources/oojs-ui
-cp -a $1/dist/{oojs-ui.js,oojs-ui.svg.css,oojs-ui-apex.css,images,i18n} resources/oojs-ui/
+cp -a $1/dist/{oojs-ui.js,oojs-ui.svg.css,oojs-ui-apex.css,oojs-ui-agora.css,images,i18n} resources/oojs-ui/
 # Figure out what the new version is
 NEWVERSION=$(oojsuiversion)
 # Generate commit summary
index a869923..41d20fb 100644 (file)
@@ -149,14 +149,3 @@ div.magnify a, div.magnify img {
 img.thumbborder {
        border: 1px solid #dddddd;
 }
-
-/**
- * Basic styles for the user login and create account forms
- */
-#loginend {
-       margin: 0.5em;
-}
-
-#loginend table {
-       width: 100%;
-}
index 4326496..c32e869 100644 (file)
@@ -642,10 +642,6 @@ td.htmlform-tip {
        margin-top: 2em;
 }
 
-#loginend, #signupend {
-       clear: both;
-}
-
 #userloginprompt, #languagelinks {
        font-size: 85%;
 }
index 8e7fc4d..f5b2b1c 100644 (file)
@@ -24,7 +24,6 @@ body {
 }
 body {
        background-color: @menu-background-color;
-       font-size: @body-font-size;
 }
 
 /* Content */
@@ -40,6 +39,72 @@ div#content {
        background-color: @body-background-color;
        color: @content-font-color;
        direction: ltr;
+
+       .mw-editsection {
+               font-family: @content-font-family;
+       }
+
+       p {
+               line-height: inherit;
+               margin: 0.5em 0;
+       }
+
+       h1,
+       h2,
+       #firstHeading {
+               font-family: @content-heading-font-family;
+               line-height: @heading-line-height;
+               margin-bottom: 0.25em;
+               padding: 0;
+       }
+
+       h1,
+       #firstHeading {
+               font-size: @content-heading-font-size;
+               margin-top: 0;
+       }
+
+       h2 {
+               font-size: 1.5em;
+               margin-top: 1em;
+       }
+
+       h3,
+       h4,
+       h5,
+       h6 {
+               line-height: @content-line-height;
+               margin-top: 0.3em;
+               margin-bottom: 0;
+               padding-bottom: 0;
+       }
+
+       h3 {
+               font-size: 1.17em;
+       }
+
+       h3,
+       h4 {
+               font-weight: bold;
+       }
+
+       h4,
+       h5,
+       h6 {
+               font-size: 100%; /* (reset) */
+       }
+
+       #toc h2,
+       .toc h2 {
+               font-size: 100%; /* (reset) */
+               font-family: @content-font-family;
+       }
+
+       // Prevent citations and subscripts from interfering with the line-height
+       sup,
+       sub {
+               line-height: 1;
+       }
 }
 
 /* Hide empty portlets */
@@ -61,12 +126,6 @@ pre, .mw-code {
        font-size: 0.8em;
 }
 
-#firstHeading {
-       padding-top: 0;
-       margin-top: 0;
-       font-size: @content-heading-font-size;
-}
-
 .redirectText {
        font-size: 140%;
 }
index 2af6389..ebfab42 100644 (file)
@@ -1,18 +1,17 @@
 @html-font-size: 1em;
 
-@body-font-size: 1em;
-
 // Page content
 // FIXME: Use global variable since Echo and CentralNotice use this variable
 @content-border-color: #a7d7f9;
-@content-font-family: sans-serif;
-@content-font-color: black;
-@content-font-size: 0.8em;
-@content-line-height: 1.5em;
+@content-font-family: Arimo, "Liberation Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+@content-font-color: #252525;
+@content-font-size: 0.875em;
+@content-line-height: 1.6;
 @content-padding: 1em;
-@content-heading-font-size: 1.6em;
-@content-heading-font-family: sans-serif;
+@content-heading-font-size: 1.8em;
+@content-heading-font-family: "Linux Libertine", Georgia, Times, serif;
 @body-background-color: #fff;
+@heading-line-height: 1.3;
 
 // Navigation
 @menu-background-color: #f6f6f6;
index f20d73a..e021dcc 100644 (file)
@@ -1111,19 +1111,36 @@ class ParserTest {
                self::deleteFiles(
                        array(
                                "$dir/3/3a/Foobar.jpg",
-                               "$dir/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg",
-                               "$dir/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg",
-                               "$dir/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/265px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/353px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg",
+                               "$dir/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg",
                                "$dir/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg",
 
                                "$dir/e/ea/Thumb.png",
@@ -1132,10 +1149,13 @@ class ParserTest {
 
                                "$dir/f/ff/Foobar.svg",
                                "$dir/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png",
-                               "$dir/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png",
-                               "$dir/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png",
                                "$dir/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png",
                                "$dir/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png",
+                               "$dir/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png",
                                "$dir/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png",
 
                                "$dir/math/f/a/5/fa50b8b616463173474302ca3e63586b.png",
@@ -1146,8 +1166,6 @@ class ParserTest {
                        array(
                                "$dir/3/3a",
                                "$dir/3",
-                               "$dir/thumb/6/65",
-                               "$dir/thumb/6",
                                "$dir/thumb/3/3a/Foobar.jpg",
                                "$dir/thumb/3/3a",
                                "$dir/thumb/3",
index 1e0f78d..e8e71b8 100644 (file)
@@ -10170,7 +10170,8 @@ parsoid=wt2html,wt2wt,html2html
 # See https://www.mediawiki.org/wiki/Help:Images#Size_and_frame
 # and https://bugzilla.wikimedia.org/show_bug.cgi?id=62258
 # Foobar has actual size of 1941x220
-# 1. Thumbs & frameless always reduce, can't be enlarged
+# 1. Thumbs & frameless always reduce, can't be enlarged unless it's
+#    a scalable format.
 # 2. Framed images ignore width; always render at default size.
 #    If given a height, they respect height but continue to ignore width.
 # 3. "Unspecified format" and border are the only types which can be
@@ -10224,16 +10225,20 @@ parsoid=wt2html,wt2wt,html2html
 !! end
 
 !! test
-Image: thumbs can't be enlarged past original size
+Image: bitmap thumbs can't be enlarged past original size, but vector can.
 !! options
 parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|thumb|2000px]]
+
+[[File:Foobar.svg|thumb|2000px]]
 !! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:2002px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" width="2000" height="1500" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>
 
 !! html/parsoid
 <figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></figure>
+<figure typeof="mw:Image/Thumb"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" height="1500" width="2000"/></a></figure>
 !! end
 
 !! test
@@ -10250,16 +10255,20 @@ parsoid=wt2html,wt2wt,html2html
 !! end
 
 !! test
-Image: frameless can't be enlarged past original size
+Image: bitmap frameless can't be enlarged past original size, but vector can
 !! options
 parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.jpg|frameless|2000px]]
+
+[[File:Foobar.svg|frameless|2000px]]
 !! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
+</p><p><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" width="2000" height="1500" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a>
 </p>
 !! html/parsoid
 <p><span typeof="mw:Image/Frameless"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
+<p><span typeof="mw:Image/Frameless"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" height="1500" width="2000"/></a></span></p>
 !! end
 
 !! test
@@ -10357,153 +10366,191 @@ SVG thumbnails with no language set
 !! options
 !! wikitext
 [[File:Foobar.svg|thumb|caption]]
-!! html
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" height="165" width="220"/></a><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
 SVG thumbnails with language de
 !! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.svg|thumb|caption|lang=de]]
-!! html
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=File:Foobar.svg&amp;lang=de" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" lang="de" height="165" width="220"/></a><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
 SVG thumbnails with invalid language code
 !! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[File:Foobar.svg|thumb|caption|lang=invalid.language.code]]
-!! html
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>lang=invalid.language.code</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" height="165" width="220"/></a><figcaption>lang=invalid.language.code</figcaption></figure>
 !! end
 
 !! test
 BUG 1887: A ISBN with a thumbnail
 !! wikitext
-[[Image:foobar.jpg|thumb|ISBN 1235467890]]
-!! html
+[[File:Foobar.jpg|thumb|ISBN 1235467890]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a href="/wiki/Special:BookSources/1235467890" class="internal mw-magiclink-isbn">ISBN 1235467890</a></div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption><a href="Special:BookSources/1235467890" rel="mw:ExtLink">ISBN 1235467890</a></figcaption></figure>
 !! end
 
 !! test
 BUG 1887: A RFC with a thumbnail
 !! wikitext
-[[Image:foobar.jpg|thumb|This is RFC 12354]]
-!! html
+[[File:Foobar.jpg|thumb|This is RFC 12354]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc12354">RFC 12354</a></div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>This is <a href="//tools.ietf.org/html/rfc12354" rel="mw:ExtLink">RFC 12354</a></figcaption></figure>
 !! end
 
 !! test
 BUG 1887: A mailto link with a thumbnail
 !! wikitext
-[[Image:foobar.jpg|thumb|Please mailto:nobody@example.com]]
-!! html
+[[File:Foobar.jpg|thumb|Please mailto:nobody@example.com]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Please <a rel="nofollow" class="external free" href="mailto:nobody@example.com">mailto:nobody@example.com</a></div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>Please <a rel="mw:ExtLink" href="mailto:nobody@example.com">mailto:nobody@example.com</a></figcaption></figure>
 !! end
 
 # Pending resolution to bug 368
 !! test
 BUG 648: Frameless image caption with a link
 !! wikitext
-[[Image:foobar.jpg|text with a [[link]] in it]]
-!! html
+[[File:Foobar.jpg|text with a [[link]] in it]]
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a [[link]] in it"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 BUG 648: Frameless image caption with a link (suffix)
 !! wikitext
-[[Image:foobar.jpg|text with a [[link]]foo in it]]
-!! html
+[[File:Foobar.jpg|text with a [[link]]foo in it]]
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a linkfoo in it"><img alt="text with a linkfoo in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a [[link]]foo in it"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 BUG 648: Frameless image caption with an interwiki link
 !! wikitext
-[[Image:foobar.jpg|text with a [[MeatBall:Link]] in it]]
-!! html
+[[File:Foobar.jpg|text with a [[MeatBall:Link]] in it]]
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a MeatBall:Link in it"><img alt="text with a MeatBall:Link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a [[MeatBall:Link]] in it"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 BUG 648: Frameless image caption with a piped interwiki link
 !! wikitext
-[[Image:foobar.jpg|text with a [[MeatBall:Link|link]] in it]]
-!! html
+[[File:Foobar.jpg|text with a [[MeatBall:Link|link]] in it]]
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"text with a [[MeatBall:Link|link]] in it"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 Escape HTML special chars in image alt text
 !! wikitext
-[[Image:foobar.jpg|& < > "]]
-!! html
+[[File:Foobar.jpg|& < > "]]
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="&amp; &lt; &gt; &quot;"><img alt="&amp; &lt; &gt; &quot;" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"&amp; &lt; > \""}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 BUG 499: Alt text should have &#1234;, not &amp;1234;
 !! wikitext
-[[Image:foobar.jpg|&#9792;]]
-!! html
+[[File:Foobar.jpg|&#9792;]]
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="♀"><img alt="♀" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"&amp;#9792;"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 Broken image caption with link
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link.
-!! html
+!! html/php
 <p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a href="/wiki/Main_Page" title="Main Page">this</a> is just an ordinary link.
 </p>
+!! html/parsoid
+<p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a rel="mw:WikiLink" href="Main_Page">this</a> is just an ordinary link.</p>
 !! end
 
 !! test
 Image caption containing another image
 !! wikitext
-[[Image:Foobar.jpg|thumb|This is a caption with another [[Image:icon.png|image]] inside it!]]
-!! html
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption with another <a href="/index.php?title=Special:Upload&amp;wpDestFile=Icon.png" class="new" title="File:Icon.png">image</a> inside it!</div></div></div>
+[[File:Foobar.jpg|thumb|This is a caption with another [[File:Thumb.png|image]] inside it!]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption with another <a href="/wiki/File:Thumb.png" class="image" title="image"><img alt="image" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" /></a> inside it!</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>This is a caption with another <span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"image"}'><a href="File:Thumb.png"><img resource="./File:Thumb.png" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a></span> inside it!</figcaption></figure>
 !! end
 
 !! test
-Image caption containing a newline
+Image: caption containing a newline
 !! wikitext
-[[Image:Foobar.jpg|This
+[[File:Foobar.jpg|This
 *is some text]]
-!! html
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="This *is some text"><img alt="This *is some text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"This\n*is some text"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !!end
 
 !!test
-Parsoid: Image caption containing leading space
+Image: caption containing leading space
 (The leading space should not trigger nowiki escaping in wt2wt mode)
 !! wikitext
-[[Image:Foobar.jpg|thumb| bar]]
-!! html
+[[File:Foobar.jpg|thumb| bar]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>bar</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption> bar</figcaption></figure>
 !!end
 
 !! test
-Images: caption containing a table
+Image: caption containing a table
+!! options
+parsoid=wt2html,wt2wt,html2html
 !! wikitext
 [[Image:Foobar.jpg|thumb|200px|This is an example image thumbnail caption with a table
 {|
@@ -14712,6 +14759,14 @@ ISBN 3-462-04561-X
 </p>
 !! end
 
+!! test
+ISBN with empty prefix (parsoid test)
+!! wikitext
+ISBN 1234567890
+!! html/parsoid
+<p><a href="Special:BookSources/1234567890" rel="mw:ExtLink">ISBN 1234567890</a></p>
+!! end
+
 !! test
 Bug 22905: <abbr> followed by ISBN followed by </a>
 !! wikitext
@@ -19373,62 +19428,128 @@ parsoid=html2wt
 !! test
 Image: Modifying size of an image (1)
 !! options
-parsoid=html2wt
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["img[height]", "attr", "height", "22"],
+    ["img[width]", "attr", "width", "200"]
+  ]
+}
 !! wikitext
+[[Image:Foobar.jpg|230x230px]]
+!! wikitext/edited
 [[Image:Foobar.jpg|200x200px]]
-!! html
-<p><span typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"230x230px"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/230px-Foobar.jpg" height="22" width="200" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"26","width":"230"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a></span></p>
 !!end
 
 !! test
 Image: Modifying size of an image (2)
 !! options
-parsoid=html2wt
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["img[height]", "attr", "height", "100"],
+    ["img[width]", "attr", "width", "500"]
+  ]
+}
 !! wikitext
+[[Image:Foobar.jpg|230x230px]]
+!! wikitext/edited
 [[Image:Foobar.jpg|500x500px]]
-!! html
-<p><span typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"230x230px"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/230px-Foobar.jpg" height="100" width="500" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"26","width":"230"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a></span></p>
 !!end
 
-# note that the data-parsoid value conflicts with the figure's class
+# Change in size is ignored so long as class='mw-default-size'
+!! test
+Image: Modifying size of an image (3)
+!! options
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["figure[class]", "removeClass", "mw-default-size"],
+    ["figure img", "attr", "height", "19"],
+    ["figure img", "attr", "width", "170"]
+  ]
+}
+!! wikitext
+[[Image:Foobar.jpg|thumb]]
+!! wikitext/edited
+[[Image:Foobar.jpg|thumb|170x170px]]
+!!end
+
 !! test
 Image: Modifying alignment of an image (bug 48665)
 !! options
-parsoid=html2wt
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["figure[class]", "removeClass", "mw-halign-right"],
+    ["figure[class]", "addClass", "mw-halign-left"]
+  ]
+}
 !! wikitext
+[[Image:Foobar.jpg|thumb|caption|right]]
+!! wikitext/edited
 [[Image:Foobar.jpg|thumb|caption|left]]
-!! html
-<figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"caption"},{"ck":"right","ak":"right"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="20" width="180" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a><figcaption>caption</figcaption></figure>
+!! end
+
+!! test
+Image: Modifying mw-default-size of an frameless image (bug 62805)
+!! options
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["figure.mw-default-size", "removeClass", "mw-default-size"]
+  ]
+}
+!! wikitext
+[[Image:Foobar.jpg|frameless|right]]
+!! wikitext/edited
+[[Image:Foobar.jpg|frameless|right|220x220px]]
 !! end
 
 !! test
 Image: Modifying valign of an image (bug 49221)
 !! options
-parsoid=html2wt
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["*[typeof=\"mw:Image\"]", "removeClass", "mw-valign-middle"],
+    ["*[typeof=\"mw:Image\"]", "addClass", "mw-valign-text-top"]
+  ]
+}
 !! wikitext
+[[File:Foobar.jpg|20px|middle]]
+!! wikitext/edited
 [[File:Foobar.jpg|20px|text-top]]
-!! html
-<p><span class="mw-valign-text-top" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"20px"},{"ck":"text_top","ak":"text-top"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" height="2" width="20" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"2","width":"20"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
 !! end
 
 !! test
 Image: Modifying alt attribute of an image (bug 56400)
 !! options
-parsoid=html2wt
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["img[alt]", "attr", "alt", "some alternate edited text"]
+  ]
+}
 !! wikitext
+[[File:Foobar.jpg|thumb|some caption|alt=some alternate text]]
+!! wikitext/edited
 [[File:Foobar.jpg|thumb|some caption|alt=some alternate edited text]]
-!! html
-<figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"some caption"},{"ck":"alt","ak":"alt=some alternate text"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img alt="some alternate edited text" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="20" width="180" data-parsoid='{"a":{"alt":"some alternate edited text","resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"alt":"alt=some alternate edited text","resource":"File:Foobar.jpg"}}'/></a><figcaption>some caption</figcaption></figure>
 !!end
 
 !! test
 Image: Modifying caption of an image
 !! options
-parsoid=html2wt
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["figcaption", "text", "new caption"]
+  ]
+}
 !! wikitext
+[[Image:Foobar.jpg|thumb|original caption]]
+!! wikitext/edited
 [[Image:Foobar.jpg|thumb|new caption]]
-!! html
-<figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"original caption"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="20" width="180" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a><figcaption>new caption</figcaption></figure>
 !!end
 
 !! test
@@ -19480,7 +19601,7 @@ parsoid
 !!end
 
 !! test
-Images: upright option (parsoid)
+Image: upright option (parsoid)
 !! options
 parsoid
 !! wikitext
@@ -19492,7 +19613,7 @@ parsoid
 !!end
 
 !! test
-Images: upright option is ignored on inline and frame images (parsoid)
+Image: upright option is ignored on inline and frame images (parsoid)
 !! options
 parsoid
 !! wikitext
@@ -19501,6 +19622,48 @@ parsoid
 <p><span typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="57" width="500"/></a></span></p>
 !!end
 
+!! test
+Image: from basic HTML (1)
+!! options
+parsoid=html2wt
+!! html/parsoid
+<span typeof="mw:Image">
+  <img src="File:Foobar.jpg" width=100 height=100 alt="Alt">
+</span>
+!! wikitext
+[[File:Foobar.jpg|link=|alt=Alt|100x100px]]
+!! end
+
+!! test
+Image: from basic HTML (2)
+!! options
+parsoid=html2wt
+!! html/parsoid
+<img src="File:Foobar.jpg" width=100 height=100 alt="Alt">
+!! wikitext
+[[File:Foobar.jpg|link=|alt=Alt|100x100px]]
+!! end
+
+!! test
+Image: from basic HTML (3)
+!! options
+parsoid=html2wt
+!! html/parsoid
+<a href="Main"><img src="File:Foobar.jpg" width=100 height=100 alt="Alt"></a>
+!! wikitext
+[[File:Foobar.jpg|link=Main|alt=Alt|100x100px]]
+!! end
+
+!! test
+Image: from basic HTML (4)
+!! options
+parsoid=html2wt
+!! html/parsoid
+<img src="File:Foobar.jpg">
+!! wikitext
+[[File:Foobar.jpg|link=]]
+!! end
+
 !! test
 Lists: Serialize correctly even when list content is wrapped in p-tags (like VE does)
 !! options
index ba3c6c0..a332368 100644 (file)
@@ -3,6 +3,8 @@
 /**
  * @group Database
  *        ^--- needed for language cache stuff
+ *
+ * @group Title
  */
 class TitleTest extends MediaWikiTestCase {
        protected function setUp() {
@@ -38,6 +40,7 @@ class TitleTest extends MediaWikiTestCase {
         * See also mediawiki.Title.test.js
         * @covers Title::secureAndSplit
         * @todo This method should be split into 2 separate tests each with a provider
+        * @note: This mainly tests MediaWikiTitleCodec::parseTitle().
         */
        public function testSecureAndSplit() {
                $this->setMwGlobals( array(
@@ -62,6 +65,7 @@ class TitleTest extends MediaWikiTestCase {
                        'A \'B\'',
                        '.com',
                        '~',
+                       '#',
                        '"',
                        '\'',
                        'Talk:Sandbox',
@@ -130,6 +134,7 @@ class TitleTest extends MediaWikiTestCase {
                        str_repeat( 'x', 256 ),
                        // Namespace prefix without actual title
                        'Talk:',
+                       'Talk:#',
                        'Category: ',
                        'Category: #bar',
                        // interwiki prefix
index e568eaf..aedc23a 100644 (file)
@@ -24,9 +24,9 @@ class DjVuTest extends MediaWikiTestCase {
                parent::setUp();
 
                //cli tool setup
-               $wgDjvuRenderer = $wgDjvuRenderer ? $wgDjvuRenderer : '/usr/local/bin/ddjvu';
-               $wgDjvuDump = $wgDjvuDump ? $wgDjvuDump : '/usr/local/bin/djvudump';
-               $wgDjvuToXML = $wgDjvuToXML ? $wgDjvuToXML : '/usr/local/bin/djvutoxml';
+               $wgDjvuRenderer = $wgDjvuRenderer ? $wgDjvuRenderer : '/usr/bin/ddjvu';
+               $wgDjvuDump = $wgDjvuDump ? $wgDjvuDump : '/usr/bin/djvudump';
+               $wgDjvuToXML = $wgDjvuToXML ? $wgDjvuToXML : '/usr/bin/djvutoxml';
                if (
                        !$this->checkIfToolExists( $wgDjvuRenderer ) ||
                        !$this->checkIfToolExists( $wgDjvuDump ) ||
index c6ded02..234eaf2 100644 (file)
@@ -489,19 +489,36 @@ class NewParserTest extends MediaWikiTestCase {
                self::deleteFiles(
                        array(
                                "$base/local-public/3/3a/Foobar.jpg",
-                               "$base/local-thumb/3/3a/Foobar.jpg/180px-Foobar.jpg",
-                               "$base/local-thumb/3/3a/Foobar.jpg/200px-Foobar.jpg",
-                               "$base/local-thumb/3/3a/Foobar.jpg/640px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/100px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/120px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/137px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/177px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/180px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/200px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/206px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/20px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/220px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/265px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/270px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/274px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/300px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/30px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/330px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/353px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/360px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/400px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/40px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/440px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/442px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/450px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/50px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/600px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/640px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/70px-Foobar.jpg",
+                               "$base/local-thumb/3/3a/Foobar.jpg/75px-Foobar.jpg",
                                "$base/local-thumb/3/3a/Foobar.jpg/960px-Foobar.jpg",
 
                                "$base/local-public/e/ea/Thumb.png",
@@ -509,12 +526,15 @@ class NewParserTest extends MediaWikiTestCase {
                                "$base/local-public/0/09/Bad.jpg",
 
                                "$base/local-public/f/ff/Foobar.svg",
-                               "$base/local-thumb/f/ff/Foobar.svg/180px-Foobar.svg.jpg",
-                               "$base/local-thumb/f/ff/Foobar.svg/270px-Foobar.svg.jpg",
-                               "$base/local-thumb/f/ff/Foobar.svg/360px-Foobar.svg.jpg",
-                               "$base/local-thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.jpg",
-                               "$base/local-thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.jpg",
-                               "$base/local-thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.jpg",
+                               "$base/local-thumb/f/ff/Foobar.svg/180px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/270px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/360px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png",
+                               "$base/local-thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png",
 
                                "$base/local-public/math/f/a/5/fa50b8b616463173474302ca3e63586b.png",
                        )
index 839c5d5..c8e8ac7 100644 (file)
@@ -1,15 +1,18 @@
 ( function ( $ ) {
-       QUnit.module( 'jquery.color', QUnit.newMwEnvironment() );
+       QUnit.module( 'jquery.color', QUnit.newMwEnvironment( {
+               setup: function () {
+                       this.clock = this.sandbox.useFakeTimers();
+               }
+       } ) );
 
-       QUnit.asyncTest( 'animate', 3, function ( assert ) {
+       QUnit.test( 'animate', 1, function ( assert ) {
                var $canvas = $( '<div>' ).css( 'background-color', '#fff' );
 
-               $canvas.animate( { backgroundColor: '#000' }, 4 ).promise().then( function () {
+               $canvas.animate( { backgroundColor: '#000' }, 10 ).promise().then( function () {
                        var endColors = $.colorUtil.getRGB( $canvas.css( 'background-color' ) );
-                       assert.strictEqual( endColors[0], 0 );
-                       assert.strictEqual( endColors[1], 0 );
-                       assert.strictEqual( endColors[2], 0 );
-                       QUnit.start();
+                       assert.deepEqual( endColors, [0, 0, 0], 'end state' );
                } );
+
+               this.clock.tick( 20 );
        } );
 }( jQuery ) );
index 441fcbc..f5091f9 100644 (file)
                } );
        } );
 
+       QUnit.asyncTest( 'mw.loader.using( .. ).promise', 2, function ( assert ) {
+               var isAwesomeDone;
+
+               mw.loader.testCallback = function () {
+                       QUnit.start();
+                       assert.strictEqual( isAwesomeDone, undefined, 'Implementing module is.awesome: isAwesomeDone should still be undefined' );
+                       isAwesomeDone = true;
+               };
+
+               mw.loader.implement( 'test.promise', [QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/callMwLoaderTestCallback.js' )], {}, {} );
+
+               mw.loader.using( 'test.promise' )
+               .done( function () {
+
+                       // /sample/awesome.js declares the "mw.loader.testCallback" function
+                       // which contains a call to start() and ok()
+                       assert.strictEqual( isAwesomeDone, true, 'test.promise module should\'ve caused isAwesomeDone to be true' );
+                       delete mw.loader.testCallback;
+
+               } )
+               .fail( function () {
+                       QUnit.start();
+                       assert.ok( false, 'Error callback fired while loader.using "test.promise" module' );
+               } );
+       } );
+
        QUnit.asyncTest( 'mw.loader.implement( styles={ "css": [text, ..] } )', 2, function ( assert ) {
                var $element = $( '<div class="mw-test-implement-a"></div>' ).appendTo( '#qunit-fixture' );
 
index 88aecbd..b0d9f10 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -289,8 +289,10 @@ function wfStreamThumb( array $params ) {
                }
        }
 
+       $dispositionType = isset( $params['download'] ) ? 'attachment' : 'inline';
+
        // Suggest a good name for users downloading this thumbnail
-       $headers[] = "Content-Disposition: {$img->getThumbDisposition( $thumbName )}";
+       $headers[] = "Content-Disposition: {$img->getThumbDisposition( $thumbName, $dispositionType )}";
 
        if ( count( $varyHeader ) ) {
                $headers[] = 'Vary: ' . implode( ', ', $varyHeader );
index 2a57d4a..d07b86f 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of thumb.php to used in web server requiring .php5 extension
- * to execute scripts with PHP5 engine.
+ * Version of thumb.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 7afa9aa..e2b165b 100644 (file)
@@ -24,6 +24,6 @@
 
 define( 'THUMB_HANDLER', true );
 
-# Execute thumb.php, having set THUMB_HANDLER so that
-# it knows to extract params from a thumbnail file URL.
+// Execute thumb.php, having set THUMB_HANDLER so that
+// it knows to extract params from a thumbnail file URL.
 require __DIR__ . '/thumb.php';
index f160c87..0e0c3c0 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
- * Version of thumb_handler.php to used in web server requiring .php5 extension
- * to execute scripts with PHP5 engine.
+ * Version of thumb_handler.php to be used in web servers that require the .php5
+ * extension to execute scripts with the PHP5 engine.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index b5450e1..a197545 100644 (file)
@@ -1,3 +1,3 @@
 <?php
-// stub file for compatibility with older versions
+// Stub file for compatibility with older versions of MediaWiki
 include_once './index.php';